Promise.allSettled()方法的语法是什么?

简介: Promise.allSettled()方法的语法是什么?

Promise.allSettled() 是 Promise 提供的静态方法,用于等待所有传入的 Promise 完成(无论成功或失败),并返回包含所有任务结果的数组。其语法如下:

基本语法

Promise.allSettled(iterable)

参数说明

  • iterable:一个可迭代对象(通常是数组),其中可以包含 Promise 实例或非 Promise 值(如普通数字、字符串等)。
    • 若元素不是 Promise,会被自动包装为 Promise.resolve(元素)(视为成功状态)。

返回值

返回一个新的 Promise 对象,该对象的状态只会变为 fulfilled(永远不会变为 rejected),其结果是一个数组,数组中的每个元素对应传入的每个 Promise 的执行结果,结构如下:

  • 对于成功的 Promise(fulfilled):
    { status: "fulfilled", value: <成功结果> }
  • 对于失败的 promise(rejected):
    { status: "rejected", reason: <错误原因> }

示例代码

// 定义三个异步任务(2个成功,1个失败)
const promise1 = Promise.resolve("操作A成功");
const promise2 = Promise.reject(new Error("操作B失败"));
const promise3 = new Promise(resolve => {
   
  setTimeout(() => resolve resolve("操作C成功"), 1000);
});

// 使用 allSettled 等待所有任务完成
Promise.allSettled([promise1, promise2, promise3])
  .then(results => {
   
    // 遍历结果数组,处理每个任务的状态
    results.forEach((result, index) => {
   
      if (result.status === "fulfilled") {
   
        console.log(`任务${
     index + 1}成功:`, result.value);
      } else {
   
        console.log(`任务${
     index + 1}失败:`, result.reason.message);
      }
    });
  });

输出结果

任务1成功: 操作A成功
任务2失败: 操作B失败
任务3成功: 操作C成功

关键特点

  • 始终等待所有传入的任务完成(无论成功或失败)。
  • 返回的 Promise 只会成功(fulfilled),不会失败(rejected)。
  • 结果数组与传入的可迭代对象顺序一致,便于对应处理每个任务的结果。

这个方法适合需要完整掌握所有异步任务执行情况的场景(如批量操作的统计、日志记录等)。

目录
相关文章
|
20天前
|
前端开发
Promise.all()方法和Promise.race()方法有什么区别?
Promise.all()方法和Promise.race()方法有什么区别?
319 115
|
20天前
|
前端开发 JavaScript
Promise.allSettled()方法和Promise.all()方法有什么区别?
Promise.allSettled()方法和Promise.all()方法有什么区别?
265 123
|
10天前
|
JSON 监控 API
掌握使用 requests 库发送各种 HTTP 请求和处理 API 响应
本课程全面讲解了使用 Python 的 requests 库进行 API 请求与响应处理,内容涵盖环境搭建、GET 与 POST 请求、参数传递、错误处理、请求头设置及实战项目开发。通过实例教学,学员可掌握基础到高级技巧,并完成天气查询应用等实际项目,适合初学者快速上手网络编程与 API 调用。
244 130
|
20天前
|
前端开发
Promise.all()方法接收的可迭代对象中,如果有一个Promise被拒绝,会发生什么?
Promise.all()方法接收的可迭代对象中,如果有一个Promise被拒绝,会发生什么?
209 108
|
13天前
|
Web App开发 JavaScript 前端开发
在使用Foldables.js库时,可能会遇到哪些常见问题及解决方法?
在使用Foldables.js库时,可能会遇到哪些常见问题及解决方法?
244 125
|
20天前
|
自然语言处理 前端开发 JavaScript
js异步
js异步
441 108
|
13天前
|
移动开发 前端开发 JavaScript
有哪些技术可以实现H5页面在折叠屏上的适配?
有哪些技术可以实现H5页面在折叠屏上的适配?
208 123
|
11天前
|
算法 Python
【轴承故障诊断】一种用于轴承故障诊断的稀疏贝叶斯学习(SBL),两种群稀疏学习算法来提取故障脉冲,第一种仅利用故障脉冲的群稀疏性,第二种则利用故障脉冲的额外周期性行为(Matlab代码实现)
【轴承故障诊断】一种用于轴承故障诊断的稀疏贝叶斯学习(SBL),两种群稀疏学习算法来提取故障脉冲,第一种仅利用故障脉冲的群稀疏性,第二种则利用故障脉冲的额外周期性行为(Matlab代码实现)
266 152