JavaScript:Promise概念、优缺点
2023-03-01 本文已影响0人
东方晓
2023-03-02 周四
什么是Promise
Promise对象接受一个回调函数作为参数, 该回调函数接受两个参数,分别是成功时的回调resolve和失败时的回调reject;
另外resolve的参数除了正常值以外, 还可能是一个Promise对象的实例;
reject的参数通常是一个Error对象的实例。
then方法返回一个新的Promise实例,并接收两个参数onResolved(fulfilled状态的回调);
onRejected(rejected状态的回调,该参数可选)
Promise优点:
- 解决了回调地狱的问题,将异步操作以同步操作的流程表达出来。
- Promise 对象提供统一的接口,使得控制异步操作更加容易。。
Promise缺点
- 无法取消Promise,一旦新建它就会立即执行,无法中途取消。
- 如果不设置回调函数,Promise内部抛出的错误,不会反应到外部。
- 当处于Pending状态时,无法得知目前进展到哪一个阶段(刚刚开始还是即将完成)。
- Promise 真正执行回调的时候,定义 Promise 那部分实际上已经走完了,所以 Promise的报错堆栈上下文不太友好。