微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Promise.all() 多个接口并行调用

Promise.all() 多个接口并行调用

有些场景我们需要同时调用多个接口的数据,对数据进行处理并渲染到页面上,这个时候需要保证多个接口能够一起并行调用,而 Promise.all() 方法则满足了这个需求。

Promise.all() 介绍

关于 Promise.all() 方法的介绍直接看 MDN 官网

@H_404_8@

Promise.all() 方法接收一个 promise 的 iterable 类型(注:Array,Map,Set 都属于 ES6 的 iterable 类型)的输入,并且只返回一个Promise实例, 那个输入的所有 promise 的 resolve 回调的结果是一个数组。这个Promise的 resolve 回调执行是在所有输入的 promise 的 resolve 回调都结束,或者输入的 iterable 里没有 promise 了的时候。它的 reject 回调执行是,只要任何一个输入的 promise 的 reject 回调执行或者输入不合法的 promise 就会立即抛出错误,并且 reject 的是第一个抛出的错误信息。

下面是简单的 demo:

const promise1 = Promise.resolve(3);
const promise2 = 42;
const 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"]
@H_404_16@

语法

Promise.all(iterable);
@H_404_16@

iterable 代表一个可迭代对象,如 ArrayString

想了解更多的用法请查看 MDN

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐