const aPromise = new Promise(function(resolve, reject) {
// some successful circumstances
resolve(aValue);
// some failed circumstances
reject(err);
});
new
一起使用,同时提供一个回调函数
aValue
是立即值时,当前 Promise 就会完成当前 Promise 并返回这个立即值aValue
是一个 Promise 或 thenable 时,aValue
会被递归展开,一直到立即值,传入的 Promise 也是需要使用构造器构造出来的创建一个已被拒绝的 Promise, 有两种方法
const rejectedPromiseA = new Promise(function(resolve, reject) {
reject(err);
});
const rejectedPromiseB = Promise.reject(err);
rejectedPromiseA
与 rejectedPromiseB
是等价的Promise.reject(...)
创建已被拒绝的 Promise 更加简便清晰创建一个已完成的 Promise
const resolvedTh = {
then: function(callback) {
// do something
},
};
const rejectedTh = {
then: function(err, callback) {
// do something with err or callback
},
};
const promiseA = Promise.resolve(resovledTh);
const promiseB = Promise.resolve(rejectedTh);
then
函数的对象来创建 Promise, 即 thenable
Promise.resolve
来创建一个已完成的 Promise