ES6 promise

Posted RunningAndRunning

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ES6 promise相关的知识,希望对你有一定的参考价值。

let promise = new Promise (function (resolve, reject) {
if (true) {
resolve(value)
//异步操作成功时执行的代码
} else {
reject(error)
//异步操作失败时候执行的代码
}
})

resolve函数的作用是,将Promise对象的状态从“未完成”变为“成功”(即从 Pending 变为 Resolved),在异步操作成功时调用,并将异步操作的结果,作为参数传递出去;reject函数的作用是,将Promise对象的状态从“未完成”变为“失败”(即从 Pending 变为 Rejected),在异步操作失败时调用,并将异步操作报出的错误,作为参数传递出去。

 

promise.then(resolved, rejected)
// resolved和rejected分别是异步操作执行成功和失败时候回调函数,rejected回调函数是可选的
function timeout(ms) {
return new Promise((resolve, reject) => {
setTimeout(resolve, ms, ‘done‘);
});
}

timeout(100).then((value) => {
console.log(value);
});

promise新建后就会立即执行,then中指定的回调函数,将在当前脚本所有同步任务执行完才会执行

promise.then(resolved).catch(rejected)

catch用于捕获错误

promise.all([p1, p2, p3]) //p1,p2,p3三个异步操作同时进行,只有当三个都完成的时候才返回fulfilled,只要有一个rejected就变为rejected

var p = promise.race([p1, p2, p3]) //只要p1、p2、p3中有一个实例率先改变状态,p的状态就跟着改变
promise.resolve()将对象转为promise对象
var jsPromise = Promise.resolve($.ajax(‘/whatever.json‘));

Promise.resolve(‘foo‘)
// 等价于
new Promise(resolve => resolve(‘foo‘))

promise.reject()

 

以上是关于ES6 promise的主要内容,如果未能解决你的问题,请参考以下文章

es6-promise源代码重点难点分析

如何在 ES6 中将回调代码转换为 Promise [重复]

ES6 promise

ES6 promise对象

es6从零学习:promise

ES6的Promise