1.Thenable接口
function then(onFulfilled) {
//函数体
}
function then(onFulfilled, onRejected) {
//函数体
}
2.Promise类
Promise
类就实现了 Thenable
接口。
以下只介绍 then
实例方法,其它方法具体参考Promise
。
function then(onFulfilled) {
//函数体
}
function then(onFulfilled, onRejected) {
//函数体
}
3.Promise对象状态
待定(pending) 是 Promise
对象的初始状态。在 待定(pending) 状态下,Promise
对象可以 落定(settled) 为表示异步操作成功的 兑现(fulfilled) 状态 或 表示异步操作失败的 拒绝(rejected) 状态。
Promise
对象的状态不一定非要脱离 待定(pending) 状态从而落定为 兑现(fulfilled) 或 拒绝(rejected) 状态。Promise
对象的状态如果一旦 落定(settled) 为 兑现(fulfilled) 或 拒绝(rejected) 状态,Promise
对象的状态就不再改变,不可从 兑现(fulfilled) 或 拒绝(rejected) 状态逆转为 待定(pending) 状态。
状态 | 描述 |
pending (待定) | 表示异步操作尚未开始或正在执行中 |
fulfilled (兑现),又称为resolved (解决) | 表示异步操作成功 |
rejected (拒绝) | 表示异步操作失败 |
let p = new Promise(() => {});
setTimeout(console.log, 0, p);
//输出
Promise { <state>: "pending" }
let p = new Promise((resolveFunc) => resolveFunc(6));
setTimeout(console.log, 0, p);
//输出
Promise { <state>: "fulfilled", <value>: 6 }
let p = new Promise((undefined, rejectFunc) => rejectFunc(6));
setTimeout(console.log, 0, p);
//输出
Promise { <state>: "rejected", <reason>: 6 }
原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/javascript/javascriptlang/21652.html