资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

手动实现一个 Promise

首先看看原生Promise有哪些功能:

  1. 支持同步和异步
  2. 一个实例的状态只能变更一次
  3. 支持链式调用
  4. 如果回调函数返回了新的实例,后续的then的执行权应该交给这个实例
  5. 提供快速解决和拒绝的实例
  6. 提供批量和优先
  7. 实例内部的报错是可控的

接下来尝试实现

创新互联建站公司2013年成立,先为怀远等服务建站,怀远等地企业,进行企业商务咨询服务。为怀远企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

注释挺明了的,就不过分赘述啦,说下思路:

  1. js是同步执行的,想要实现异步,就得考虑使用缓存
  2. 在回调函数返回G_Promise实例的情况下,后续then的执行权怎么移交给这个实例?resolve和onResolved都只有一个参数,完全可以把resolve传给这个实例的then
  3. 原生Promise的错误不会暴露在外面,那就得考虑try...catch...
  4. all...then...执行的时候也能保证时机恰当,all的原理貌似也是G_Promise
这个G_Promise搞明白后,axios、fetch什么的应该都不是问题了,一个Promise的设计包含了挺多东西的哈哈,各位同学还有什么有趣的实现可以评论区交流哈^_^
分享名称:手动实现一个 Promise
网站路径:http://cdkjz.cn/article/dsojiis.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220