首页 > 试题广场 >

关于将Promise.all和Promise.race传入空

[单选题]
关于将 Promise.all 和 Promise.race 传入空数组的两段代码的输出结果说法正确的是:
Promise.all([]).then((res) => {
    console.log('all');
});
Promise.race([]).then((res) => {
    console.log('race');
});

  • all 和 race 都会被输出
  • all 和 race 都不会被输出
  • all 会被输出,而 race 不会被输出
  • all 不会被输出,race 会被输出
Promise.all([ ])中,数组为空数组,则立即决议为成功执行resolve( );
Promise.race([ ])中数组为空数组,就不会执行,永远挂起
发表于 2022-01-24 18:38:39 回复(0)

Promise.all(iterable) 允许在 iterable 中使用 non-promise 的“常规”值

通常,Promise.all(...) 接受含有 promise 项的可迭代对象(大多数情况下是数组)作为参数。但是,如果这些对象中的任何一个不是 promise,那么它将被“按原样”传递给结果数组。

例如,这里的结果是 [1, 2, 3]

 Promise.all([   new Promise((resolve, reject) => {     setTimeout(() => resolve(1), 1000)  }),   2,   3 ]).then(alert); // 1, 2, 3

所以我们可以在方便的地方将准备好的值传递给 Promise.all


race则是让最先settle的promise执行。
发表于 2021-06-23 17:04:54 回复(0)
all允许空数组,race不允许空数组
发表于 2022-06-14 22:18:50 回复(0)