Promise

作者: monkeynessss | 来源:发表于2022-06-29 00:47 被阅读0次

    Promise.all:
    promise数组中所有状态变为fulfilled,Promise.all才会变成fulfilled
    promise数组中有一个变为rejected,Promise.all就会变成rejected

    Promise.race:
    promise数组中有一个状态变为fulfilled,Promise.race就变成fulfilled
    promise数组中有一个变为rejected,Promise.race就会变成rejected

    Promise.allSettled:
    状态只有fulfilled,then返回值为
    [{"status":"fulfilled","value":100},{"status":"rejected","reason":50},{"status":"fulfilled","value":200}]

    Promise.any:
    promise数组中有一个状态变为fulfilled,Promise.any就变成fulfilled
    promise数组中有全部变为rejected,Promise.any才会变成rejected

    Promise.resolve:
    1.参数是一个 Promise 实例
    如果参数是 Promise 实例,那么Promise.resolve将不做任何修改、原封不动地返回这个实例。

    2.参数是一个thenable对象
    Promise.resolve()方法会将这个对象转为 Promise 对象,然后就立即执行thenable对象的then()方法,thenable对象的then()方法执行后,对象p的状态就变为resolved,从而立即执行最后那个then()方法指定的回调函数

    3.参数不是具有then()方法的对象,或根本就不是对象
    如果参数是一个原始值,或者是一个不具有then()方法的对象,则Promise.resolve()方法返回一个新的 Promise 对象,状态为resolved。由于字符串Hello不属于异步操作(判断方法是字符串对象不具有 then 方法),返回 Promise 实例的状态从一生成就是resolved,所以回调函数会立即执行。Promise.resolve()方法的参数,会同时传给回调函数

    4.不带有任何参数
    Promise.resolve()方法允许调用时不带参数,直接返回一个resolved状态的 Promise 对象。

    知识点:
    Promise的面试题还是有很多的,不止有代码输出题,还有手写代码,Promise原理,实现Promise A+等等

    相关文章

      网友评论

          本文标题:Promise

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