promise三个状态俩个参数_JavaScript基础:实现一个简单版Promise对象,探究内部实现原理...

本文探讨如何实现一个简单的Promise对象,包括设置初始状态为pending、定义resolve和reject函数,以及实现then方法处理异步操作。在resolve和reject函数中,确保只有在等待态才能改变状态,并执行相应的回调。同时,then方法处理了参数是否为函数的判断,实现了链式调用和状态判断逻辑。
摘要由CSDN通过智能技术生成

先来搭建构建函数的大体框架

ff8093af1234d5c559c9f7415c3c7315.png
  1. 首先我们创建了三个常量用于表示状态,对于经常使用的一些值都应该通过常量来管理,便于开发及后期维护
  2. 在函数体内部首先创建了常量 that,因为代码可能会异步执行,用于获取正确的 this 对象
  3. 一开始 Promise 的状态应该是 pending
  4. value 变量用于保存 resolve 或者 reject 中传入的值
  5. resolvedCallbacks 和 rejectedCallbacks 用于保存 then 中的回调,因为当执行完 Promise 时状态可能还是等待中,这时候应该把 then 中的回调保存起来用于状态改变时使用

接下来完善 resolve 和 reject 函数,添加在 MyPromise 函数体内部

42fea3d1e008e6ef2793dcb4d3fc647a.png

这两个函数代码类似,就一起解析了

  1. 首先两个函数都得判断当前状态是否为等待中,因为规范规定只有等待态才可以改变状态
  2. 将当前状态更改为对应状态,并且将传入的值赋值给 value
  3. 遍历回调数组并执行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值