Promise.all() 等待全部完成
最后更新:2026-09-09
Promise.all() 等待全部完成
Promise.all 接收 Promise 数组,全部成功时返回结果数组;任何一个失败立即 reject。
| 分类 | 异步 |
|---|---|
| ES 版本 | ES6 |
📝 语法
Promise.all([p1, p2, p3]).then((结果数组) => {...});
⚙️ 参数
| iterable | Promise(或值)的可迭代对象(通常是数组)。 |
|---|
返回值:全部结果组成的数组(顺序与输入一致)。
是否修改原值:否(返回新值)
▶ 示例
编辑下方代码,点击运行,在输出面板查看结果:
运行结果:
张三 5
💡 提示 Promise.all 是并发请求的标准方法——比逐个 await 快得多。
⚠️ 警告 一个失败全部 reject——需要所有结果(包括失败的)用 allSettled。
🌐 浏览器支持
| 浏览器 | |||||
|---|---|---|---|---|---|
| Promise.all() | ✓ v32 | ✓ v12 | ✓ v27 | ✓ v8 | ✓ v19 |
| 所有现代浏览器均支持 | |||||
🏷️ 相关条目
💡 相关案例
更多实战案例即将上线,敬请期待。
📚 相关教程
❓ 常见问题
QPromise.all 和 allSettled 的区别?
Aall 一个失败全部 reject;allSettled 等全部结束,不管成功失败。
QPromise.all 的结果顺序和输入一致吗?
A是——按输入数组的顺序排列,不是完成顺序。
Q如何并发请求多个 API?
Aawait Promise.all([fetch(url1), fetch(url2)])。