0
点赞
收藏
分享

微信扫一扫

promise(基础)

GG_lyf 2022-04-21 阅读 31
前端

prmise

1 promise 程序执行的特点

  • 1: new Promise中的回调函数是同步执行的
  • 2: 原型方法的回调函数,都是异步执行的, 属于异步消息队列中的微任务.
    • 例:then catch …
  • 3:因为then具有链式调用的特点。所以只要确定 then ,就可以一直执行, 但并没有提高太大的代码可读性。

2 promise有三种状态

  • pending(等待态)
  • resolve / fulfilled 已接收
  • reject 已拒绝

3 peomise api 分类

  • 原型api p.api() === Promise.prototype.api()

  • 静态pai Promise.api()

    • 静态方法:只能同构Promise构造函数使用
  • 所有的api执行后返回值都是 新的promise实例, 只要是 promise实例就可以使用 p.api 去触发原型方法

3.1 原型方法

分类

  • then 监听primise实例状态的变更, 主要监听变为已接收
  • catch 监听promis实例 已拒绝的状态
  • finally 监听链式调用中最后的一个状态

.then Callback

  • 1: 触发条件 当prmise状态变为 fulfilled / resolve
  • 2: 形参来源 resolve函数实参 或者 上一个 then return

3.2 静态方法

  • Promise.all()

    • 参数:数组;数组中的每个元素均是 promise 实例
    • 返回:新的prmise
    • 作用:同时监听多个promise实例的状态变更,当所有promise都变为 reject 时 执行all-then-callback,当有一个拒绝执行时catch-callback
    • 应用场景:经常用于处理并发业务.例如,同时发送多个请求,等所有请求成功后,在处理.
    • 注意:Promise.all 捕获 reject 不是绝对的.如果Promise.all 内 单个prmise先自己捕获了catch, 那么Promise.all 不会捕获catch
  • Promise.all()的 .thenCallback

    • 1:触发条件 所有promise都变为 resolve
    • 2:形参 数组, 数组元素 resolve 实参.
  • Promise.race()

    • 作用:监听多个promise实例状态
    • 状况:当第一个promise实例状态发生变更时,若是 fullid(已接收),执行 race-then-callback;若是 reject(已拒绝)执行race-catch-callback
  • Prmise.any()

    • 作用:监听多个promise实例的状态,
    • 状况:当多个promise实例中只要有一个状态变为fulfilled(已接收) 执行 any-then-callback ;若promise实例全部状态均是reject则执行 any-catch-callback
  • Promise.resolve()

    • 作用:相当于在 new Promise中执行 resolve
  • Promise.reject()

    • 作用:相当于在 new Promise 执行 reject

4 promise 应用

举报

相关推荐

0 条评论