美文网首页
promise方法

promise方法

作者: yueluoxingliu | 来源:发表于2022-06-25 20:25 被阅读0次

## 原型成员 (实例成员)

- then:注册一个后续处理函数,当Promise为resolved状态时运行该函数

- catch:注册一个后续处理函数,当Promise为rejected状态时运行该函数

- finally:[ES2018]注册一个后续处理函数(无参),当Promise为已决时运行该函数

## 构造函数成员 (静态成员)

- resolve(数据):该方法返回一个resolved状态的Promise,传递的数据作为状态数据

  - 特殊情况:如果传递的数据是Promise,则直接返回传递的Promise对象

- reject(数据):该方法返回一个rejected状态的Promise,传递的数据作为状态数据

##其他静态方法all、race、allSettled、any

all:一个都不能少

const  p=Promise.all([p1,p2,p3]);

p的状态由p1、p2、p3决定,分成两种情况。

(1)只有p1、p2、p3的状态都变成fulfilled,p的状态才会变成fulfilled,此时p1、p2、p3的返回值组成一个数组,传递给p的回调函数。

(2)只要p1、p2、p3之中有一个被rejected,p的状态就变成rejected,此时第一个被reject的实例的返回值,会传递给p的回调函数。

- all(iterable):这个方法返回一个新的promise对象,该promise对象在iterable参数对象里所有的promise对象都成功的时候才会触发成功,一旦有任何一个iterable里面的promise对象失败则立即触发该promise对象的失败。这个新的promise对象在触发成功状态以后,会把一个包含iterable里所有promise返回值的数组作为成功回调的返回值,顺序跟iterable的顺序保持一致;如果这个新的promise对象触发了失败状态,它会把iterable里第一个触发失败的promise对象的错误信息作为它的失败错误信息。Promise.all方法常被用于处理多个promise对象的状态集合。

race:

上面代码中,只要p1、p2、p3之中有一个实例率先改变状态,p的状态就跟着改变。那个率先改变的 Promise 实例的返回值,就传递给p的回调函数。

Promise.race方法的参数与Promise.all方法一样,如果不是 Promise 实例,就会先调用下面讲到的Promise.resolve方法,将参数转为 Promise 实例,再进一步处理。

- race(iterable):当iterable参数里的任意一个子promise被成功或失败后,父promise马上也会用子promise的成功返回值或失败详情作为参数调用父promise绑定的相应句柄,并返回该promise对象

相关文章

  • 一步步手写Promsie源码(二)

    Promise.all方法实现 Promise.resolve方法实现 Promise.finally方法实现 c...

  • Promise,async,await笔记

    Promise,async,await笔记 Promise 创建promise对象 Promise对象构造方法传入...

  • 详解ES6 Promise

    整理Promise提供的各种方法和错误处理方法。 1.Promise.resolve() 1.1 Promise....

  • Promise对象

    Promise对象 创造一个Promise实例 then方法 Promise实例生成以后,可以用then方法分别指...

  • 为原型添加方法

    手动添加数组方法 为promise添加实现方法 promise.finally promise.all promi...

  • Promise.finally、Promise.all、Prom

    Promise原型对象上的方法 Promise构造函数中定义的方法 1. Promise.prototype.fi...

  • 【promise-05】promise.all()与promis

    #promise.all()与promise.race() Promise.all()方法可以把多个promise...

  • promise浅析

    创建promise Promise.prototype.then方法的使用Promise实例生成后,可用then方...

  • Promise对象方法

    Promise.prototype.then() Promise实例具有then方法,也就是说,then方法是定义...

  • js sleep

    // promise 在ES6的语法中,Promise是sleep方法异步的实现一种方式,借助Promise方法可...

网友评论

      本文标题:promise方法

      本文链接:https://www.haomeiwen.com/subject/gllpkrtx.html