Promise.all(iterable) 参数可以不是数组,但必须具有 Iterator 接口,且返回的每个成员都是 Promise 实例

发布时间 2023-11-16 14:53:29作者: 龙陌

下面关于Promise的all方法说法错误的是( )

A
promise.all(iterable),参数是一个数组

B
只有这个数组中的所有promise实例都resolve之后才会触发其返回的promise实例的then

C
只要其中有任何一个promise实例被reject,那么最终的promise实例将触发catch

D
触发then时可以只带上iterable参数中的部分值,也可以带所有值。

正确答案:D

iterable是一个全部为promise对象的数组,
只要数组中有一个promise实例被reject,那么最终的promise触发catch,
只有数组中全部promise实例都resolve才会触发then,并且要带上iterable中全部promise,其中promise实例将会被结果代替

Promise.all(iterable)

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