·更新于 2026年4月21日· 53 次浏览 JavaScript异步

JavaScript 异步:Promise 组合与结构化并发

`Promise.all` / `allSettled` / `race` 语义差异;取消与超时模式;`async` 函数隐式返回 Promise 的错误栈。

JavaScript 异步:Promise 组合与结构化并发
ZHOU YI

作者

ZHOU YI

Promise.all 任一 reject 即整体 reject;allSettled 适合批量任务需要独立结果与错误信息的场景。

js
const results = await Promise.allSettled(urls.map(u => fetch(u)))
const ok = results.filter(r => r.status === 'fulfilled')

超时包装

常用 Promise.race 与 sleep/reject 组合;注意清理底层请求(AbortController)避免泄漏与无效负载。

  • 顶层 await 在 ESM 中阻塞模块求值,谨慎用于短生命周期脚本
  • 错误要 await 链接中显式捕获,否则易成未处理 rejection

Guestbook

留言

若这篇文章也曾停在你心上,留一行字吧,我会看的。

先确认一下邮箱

多这一步,是为了少些机器骚扰,也让我能更踏实地读每一条真人写下的字。验证码 10 分钟内有效;同一邮箱 60 秒内只能发一封。

本文留言

0已加载 0

这里还静悄悄的——愿意做第一个留下脚印的人吗?