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)。
  • 结果数组与传入的可迭代对象顺序一致,便于对应处理每个任务的结果。

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

目录
相关文章
|
5月前
|
前端开发
Promise.all()方法和Promise.race()方法有什么区别?
Promise.all()方法和Promise.race()方法有什么区别?
440 115
|
5月前
|
前端开发
Promise.all()方法接收的可迭代对象中,如果有一个Promise被拒绝,会发生什么?
Promise.all()方法接收的可迭代对象中,如果有一个Promise被拒绝,会发生什么?
298 108
|
5月前
|
自然语言处理 前端开发 JavaScript
js异步
js异步
646 108
|
5月前
|
安全 网络协议 网络安全
Palo Alto PAN-OS 12.1 Orion 新增功能简介
Palo Alto PAN-OS 12.1 Orion 发布 - 请访基于机器学习的下一代防火墙操作系统
271 1
Palo Alto PAN-OS 12.1 Orion 新增功能简介
|
5月前
|
XML JSON 数据库
大模型不听话?试试提示词微调
想象一下,你向大型语言模型抛出问题,满心期待精准回答,得到的却是答非所问,是不是让人抓狂?在复杂分类场景下,这种“大模型不听话”的情况更是常见。
336 9
|
5月前
|
缓存 Java Spring
Spring循环依赖:当两个Bean陷入鸡生蛋死循环时...
Spring中循环依赖问题常见于Bean相互依赖时,尤其在单例模式下。文章深入解析了循环依赖的成因及Spring的三级缓存解决方案,帮助理解Bean生命周期与依赖管理。
|
5月前
|
人工智能 监控 安全
智慧工地解决方案,java智慧工地程序代码
智慧工地系统融合物联网、AI、大数据等技术,实现对施工现场“人、机、料、法、环”的全面智能监控与管理,提升安全、效率与决策水平。
160 2
|
5月前
|
前端开发 JavaScript
Promise.allSettled()方法和Promise.all()方法有什么区别?
Promise.allSettled()方法和Promise.all()方法有什么区别?
420 123
|
5月前
|
前端开发
Promise.all()方法的作用是什么?
Promise.all()方法的作用是什么?
405 121

热门文章

最新文章