Promise.allSettled() 等待全部结束
最后更新:2026-09-09
Promise.allSettled() 等待全部结束
Promise.allSettled 等待所有 Promise 结束(无论成功或失败),返回包含每个结果状态的数组。
| 分类 | 异步 |
|---|---|
| ES 版本 | ES2020 |
📝 语法
Promise.allSettled([p1, p2]).then((结果) => {...});
⚙️ 参数
| iterable | Promise 的可迭代对象。 |
|---|
返回值:包含 {status, value/reason} 的数组。
是否修改原值:否(返回新值)
▶ 示例
编辑下方代码,点击运行,在输出面板查看结果:
运行结果:
OK: 成功
FAIL: 失败
💡 提示 需要所有请求的结果(即使部分失败)时用 allSettled——如批量加载多个资源。
ℹ️ info 每个结果有 status 属性:fulfilled 有 value,rejected 有 reason。
🌐 浏览器支持
| 浏览器 | |||||
|---|---|---|---|---|---|
| Promise.allSettled() | ✓ v80 | ✓ v80 | ✓ v72 | ✓ v13.1 | ✓ v67 |
| 所有现代浏览器均支持 | |||||
🏷️ 相关条目
💡 相关案例
更多实战案例即将上线,敬请期待。
📚 相关教程
❓ 常见问题
QallSettled 和 all 的区别?
Aall 一个失败全部 reject;allSettled 等全部结束且不会 reject。
QallSettled 的返回结构?
A{status: 'fulfilled', value} 或 {status: 'rejected', reason}。
Q什么时候用 allSettled?
A批量操作中需要知道每个操作的结果——如同时上传多个文件。