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()
并行处理多个异步操作了。