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+等等
网友评论