Promise.all()用法、使用场景、实现方法

Promise.all()用法、使用场景、实现方法
最新回答
敲击岁月

2021-03-07 01:27:56

Promise.all()是一个JavaScript异步编程工具,用于将多个Promise实例包装成一个新的Promise实例。

使用场景多样,其中一种是构建API,从多个第三方API获取信息并聚合API的所有响应。另一种场景是验证多个请求结果是否都是满足条件,例如在一个微信小程序项目中,对表单输入内容进行安全验证。表单包含多个字段,都调用内容安全校验接口,当所有接口验证通过时,可以正常提交。

Promise.all()的用法灵活。当传入的可迭代对象为空时,Promise.all()返回一个同步的Promise实例。反之,若所有参数都resolve,则返回一个包含所有resolve后的值的数组。

实现方法:调用Promise.all()时,需传入一个可迭代对象,该对象内包含要并行执行的Promise实例。当所有Promise实例都resolve,返回的Promise实例也会resolve,返回的结果是一个数组,包含所有resolve后的Promise实例的结果值。若在执行过程中遇到一个reject,则整个Promise.all()实例会reject,且返回的是第一个被reject的Promise实例的值。