Promise

什么是Promise?

  1. Promise 对象用于表示一个异步操作的最终完成或失败及其结果值。

  1. 本身是一个内置的构造函数,不是回调,是程序员自己new调用的。

  1. new Promise的时候,要传入一个回调函数,它是同步的回调,会立即在主线程上执行,被称为executor函数,executor函数会接收到2个参数,分别用形参:resolve和reject两个函数接收,分别代表成功和失败。

  1. 基本编码流程

  1.首先,创建一个Promise的实例对象(pending状态), 传入executor函数类型的参数
  2.这个函数类型的参数又接收两个回调函数(resolve成功/reject失败)
  3.状态机制:pending进行中、fulfilled成功、rejected失败
  4.在executor中启动异步任务(定时器、ajax请求)
  5.根据异步任务的结果,做不同处理:
    5.1 如果异步任务成功了:
      我们调用resolve(value), 让Promise实例对象状态变为成功(fulfilled),同时指定成功的value
    5.2 如果异步任务失败了:
  我们调用reject(reason), 让Promise实例对象状态变为失败(rejected),同时指定失败的reason
  6.通过then方法为Promise的实例指定成功、失败的回调函数,来获取成功的value、失败的reason。
  //then方法所指定的:成功的回调、失败的回调,都是异步的回调

解决了什么问题?

解决了地狱回调,而且因为有了resolve和rejec可以进行异步处理并且得知任务进度

回调地狱: 某个异步操作需要等到之前的操作完成, 当这样的需求多了以后, 使的代码进入无尽的嵌套

手写一个Promise 参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值