promise原理解析上

Promise

什么是promise?

  • 1、Promise是一个状态机,有三种状态pending, rejected(失败态), fulfilled(成功态),默认状态为pending;状态一旦改变就会凝固。
  • 2、 我们可以new Promise的形式直接调用回调函数来执行,改变状态的函数resolve或者reject。resolve或者reject函数中实参如果是promise,最终的状态由内层promise的最终的状态来决定,同时把值传递下一个then中对应的处理函数中。 如果是异步的更改状态;
  • 3、Promise可以进行.then的链式调用,参数可选,分别为成功的回调和失败的回调。如果then中的参数不是函数,则会出现值穿透现象。
  • 4、Promise可以类上的静态方法resolve或者reject直接更改Promise的状态。
  • 5、Promise类上其他静态方法的实现all, race, any
  • 6、Promise原型上方法catch, finnaly的实现
    • catch总能捕获统一层的then中或者Promise中抛出的错误
    • finnaly Promise状态的最终捕获状态,我们往往利用这个函数,来执行异步后的操作。
  • 测试 npm install promises-aplus-tests -g
实现1,2,3
const PENDING = 'pending';
const FULFILLED = 'fulfilled';
const REJECTED = 'rejected';
class Promise1{
   
  constructor (executor) {
   
    this.value = undefined;
    this.reason=undefined;
    this.status = PENDING;
    this.onFulfilledCallbacks = [<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值