es6中promise 链式调用理解总结

理解es6中promise链式调用

promise状态,value不谈了,主要研究链式调用(then)

constructor

立即执行,参数resolve,reject决定promise对象状态和value

//原生promise示例
let p = new Promise((resolve,reject) => {
   
    resolve(1)
})

then

总体特性:

  1. 返回一个promise对象,所以可以链式调用
  2. 如果 return new Promise() 返回一个promise对象,则要等该promise对象最终成功或失败才改变返回的promise状态
  3. 如果return '非promise对象‘ 则直接返回成功态的一个promise

调用then时发生了什么:

立即返回一个promise(pending),then中return 的值决定新返回的promise的状态:
非promise:成功
promise:状态与该promise一致
抛出异常:失败

事件执行顺序:如果状态为pending的promise调用then,则在promise的注册列表中加入事件等待执行,否则(成功或失败状态)直接执行事件(这里的事件做了什么:将then的方法参数塞入微任务队列)

//原生promise示例
let p = new Promise((resolve,reject) => {
   
  resolve(1)
}).then(function (
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值