Promise.all() 是 Promise 对象的一个静态方法,它允许你并行处理多个 Promise,并在所有 Promise 都成功完成时得到一个包含所有结果的数组。若其中任何一个 Promise 失败,Promise.all() 返回的 Promise 就会立即失败。以下是使用 Promise.all() 的详细步骤与示例。
基本语法
Promise.all(iterable);
这里的 iterable 一般是一个数组,数组中的每个元素都应当是 Promise 实例。
使用步骤
- 创建多个
Promise实例:你要创建多个Promise实例,每个实例代表一个异步操作。 - 将这些
Promise实例放入一个数组:把创建好的Promise实例放到一个数组中。 - 调用
Promise.all()方法:把包含Promise实例的数组作为参数传递给Promise.all()方法。 - 处理结果:使用
then()方法处理所有Promise都成功的情况,使用catch()方法处理有Promise失败的情况。
示例代码
下面的示例展示了如何使用 Promise.all() 处理多个异步操作:
代码解释
asyncOperation函数:该函数模拟了一个异步操作,返回一个Promise,在指定的延迟时间后成功解决,并返回传入的值。- 创建
Promise实例:分别创建了三个Promise实例promise1、promise2和promise3,它们的延迟时间不同。 - 调用
Promise.all()方法:将这三个Promise实例放入一个数组,然后传递给Promise.all()方法。 - 处理结果:
- 若所有
Promise都成功完成,then()方法中的回调函数会被调用,其参数results是一个包含所有Promise结果的数组。 - 若有任何一个
Promise失败,catch()方法中的回调函数会被调用,其参数error是失败的Promise的错误信息。
- 若所有
通过上述步骤,你就能使用 Promise.all() 并行处理多个异步操作了。