跳到主要内容

简述promise.all() 方法有什么作用?

参考答案:

Promise.all() 是 JavaScript 中 Promise 对象的一个静态方法,它接受一个 Promise 对象的数组作为参数,并返回一个新的 Promise 对象。这个新的 Promise 对象会在所有传入的 Promise 对象都成功解决(fulfilled)后解决,或者只要有一个 Promise 对象失败(rejected),它就会立即失败。

这个方法的主要作用是并行处理多个异步操作,并且在所有操作都成功完成后获取所有操作的结果。这对于需要同时等待多个异步操作完成的情况非常有用。

例如,如果你需要同时从多个 API 获取数据,你可以使用 Promise.all() 来同时发起这些请求,并在所有请求都完成后获取所有的数据。

这里有一个简单的例子:

let promise1 = Promise.resolve(3);
let promise2 = 42;
let promise3 = new Promise((resolve, reject) => {
  setTimeout(resolve, 100, 'foo');
});

Promise.all([promise1, promise2, promise3]).then((values) => {
  console.log(values);
  // expected output: Array [3, 42, "foo"]
});

在这个例子中,promise1promise2promise3 都是 Promise 对象。Promise.all() 接收一个包含这三个 Promise 对象的数组作为参数,并返回一个新的 Promise 对象。当 promise1promise2promise3 都成功解决后,新的 Promise 对象就会解决,并且其解决值是一个包含这三个 Promise 对象解决值的数组。在这个例子中,这个数组就是 [3, 42, "foo"]