小程序 Promise

2021-07-27  本文已影响0人  Vergil_wj

Promise 表示一个异步操作对象,它让我们可以在外部处理异步操作完成或者失败的结果。Promise 是 ES6 的一个标准内置对象,是为了解决 JavaScript 开发中一贯存在的回调地狱问题而提出的。

微信小程序目前已经支持了包括 Symbol、Set、Map、Promise在内的大部分内置对象以及相关的 ES6 方法。小程序中已经原生支持 Promise,不需要引入第三方类库。

Promise 主要方法

  1. Promise.prototype.then()

  2. Promise.prototype.catch()

  3. Promise.prototype.finally()

以下四个都是集合方法,代表将多个 Promise 实例集合成一个新的 Promise 总实例,并施加一种执行控制策略。这四个方法接受的参数都是一个数组,数组的元素都是 Promise 实例。

  1. Promise.all()
    代表说有子实例都必须处于接受状态,总实例才处于接受状态,否则是拒绝状态。

  2. Promise.any()
    代表任何一个子 Promise 实例变成接受状态,总实例即处于接受状态。而所有子实例处于拒绝状态时,总实例才处于拒绝状态。
    目前 any 方法处于草案阶段,即小程序中没有实现,不过我们可以手动实现。

  3. Promise.race()
    race 中文意思赛跑,代表各个 Promise 子实例赛跑执行,跑的最快的子实例处于接受或者拒绝状态,总实例则处于接受或者拒绝状态。

  4. Promise.allSettled()
    代表所有子实例,无论处于接受状态或者决绝状态,他们的状态都改变了,总实例才处于接受状态。同时再回调函数中,返回一个包含所有 Promise 子实例状态的一个数组。

上一篇下一篇

猜你喜欢

热点阅读