美文网首页
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对象

    相关文章

      网友评论

          本文标题:promise方法

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