Promise使用总结

2021-07-01  本文已影响0人  大冬桥

Promise对象用于表示一个异步操作的最终完成(或失败)及其结果值。

Promise对象的几种状态:
链式调用

promise可以使用promise.then((onFulfilled, onRejected)、promise.catch(onRejected)和 promise.finally(onFinally)进行链式调用,这些实例方法都会返回一个新的promise对象。这个promise对象的状态,由这些实例方法的参数(onFulfilled\onRejected\onFinally)的返回值决定:

两种情况返回的promise对象状态为已拒绝。第一种情况在函数中抛出异常;第二种情况是返回一个已拒绝的promise对象,此时返回的promise对象替换这些实例方法返回的对象。除了这两种情况,这些实例方法返回的promise对象都为已兑现状态。

所有promise都是异步的

处于已敲定状态的promise对象也可以接收操作,因此在完成异步操作和绑定处理方法之间不会存在竞争状态。需要注意的是所有的 promise 都一定是异步的。因此,一个已经处于"已敲定"("settled")状态的 promise 中的操作只有 promise 链式调用的栈被清空了和一个事件循环过去了之后才会被执行。

const promiseA = new Promise( (resolutionFunc,rejectionFunc) => {
   resolutionFunc(777);
});
// 这时,"promiseA" 已经被敲定了。
promiseA.then( (val) => console.log("asynchronous logging has val:",val) );
console.log("immediate logging");

// produces output in this order:
// immediate logging
// asynchronous logging has val: 777
上一篇 下一篇

猜你喜欢

热点阅读