javascript 中promise对象中的all,allSettled,any,race方法
简介:
javascript 中promise对象中的all,allSettled,any,race方法
- Promise.all()方法用于将多个 Promise 实例,包装成一个新的 Promise 实例。Promise.all方法接收一个数组作为cans参数,数组中的元素都是promise对象,只有数组元素的状态都变成fulfilled,Promise.all()返回对象的状态才会变成fulfilled,此时数组元素的返回值组成一个数组,传递给p的回调函数。只要数组元素之中有一个被rejected,Promise.all()返回对象的状态就变成rejected,此时第一个数组元素被reject的实例的返回值,会传递给p的回调函数。*
- Promise.race()方法同样是将多个 Promise 实例,包装成一个新的 Promise 实例。只要数组元素之中有一个实例率先改变状态,Promise.race()方法返回对象的状态就跟着改变。那个率先改变的 Promise 实例的返回值,就传递给p的回调函数。*
- Promise.race()方法的参数与Promise.all()方法一样,如果不是 Promise 实例,就会先调用下面讲到的Promise.resolve()方法,将参数转为 Promise 实例,再进一步处理。*
- Promise.allSettled()方法接受一个数组作为参数,数组的每个成员都是一个 Promise 对象,并返回一个新的 Promise 对象。只有等到参数数组的所有 Promise 对象都发生状态变更(不管是fulfilled还是rejected),返回的 Promise 对象才会发生状态变更。*
- Promise.any()方法。该方法接受一组 Promise 实例作为参数,包装成一个新的 Promise 实例返回。只要参数实例有一个变成fulfilled状态,包装实例就会变成fulfilled状态;如果所有参数实例都变成rejected状态,包装实例就会变成rejected状态。*
- Promise.any()跟Promise.race()方法很像,只有一点不同,就是Promise.any()不会因为某个 Promise 变成rejected状态而结束,必须等到所有参数 Promise 变成rejected状态才会结束。*
- ECMAScript 6 入门