Promise 基本用法
创建 Promise
var promise = new Promise(function(resolve, reject){
// do something async
if(/* everything ok */){
resolve("OK"); // it will return Promise.resolve("OK"), and the downstream will get "OK" as params
} else {
reject(Error("Error")); // it will return Error("Error") and the downstream will get Error("Error") as params
}
})
`</pre>
Promise 构造器接受一个函数作为参数, 传入两个回调函数resolve 和 reject, 在这个函数参数中做一些一步操作, 成功后调用 resolve 将 Promise 对象的状态设置为 resolved 并返回一个 Promise 对象用于链式调用, 失败后调用 reject 将 Promise 对象的状态设置为 rejected 并返回一个 Promise 对象用于链式调用
使用时:
<pre>`promise.then(function(result){}).catch(function(err){})
Promise API Reference
静态方法:
Promise.resolve(promise)
, 返回一个 PromisePromise.resolve(thenable)
, 从 thenable 对象创建一个新的 Promise, 一个 thenable (类 Promise) 对象是一个带有” then” 方法的对象.Promise.resolve(obj)
, 创建一个以 obj 为肯定结果的 PromisePromise.reject(obj)
, 创建一个以 obj 为否定结果的 Promise, 为了一致性和调试方便, obj 应该是一个 Error 实例对象.Promise.all(array)
, 创建一个 Promise, 当且仅当数组中的所有 Promise 都 resolved 之后才设为 resolved, 若其中存在 rejected, 则设置状态为 rejectedPromise.race(array)
, 创建一个 Promise, 当数组首先出现 resovled 或 rejected 的时候设置为同状态