# Promise 2026 学习 Demo

Promise 是 JavaScript 异步模型的核心；日常业务代码优先写 `async` /
`await`，但仍要理解 Promise 的状态、错误传播和并发组合。

直接在浏览器打开 `index.html` 即可运行，不需要 Node.js、构建工具或网络。

## 本示例覆盖的知识点

- 状态与执行器：`pending` 只能结算为 `fulfilled` 或 `rejected` 一次；执行器同步运行。
- 链式调用：`then` 返回新 Promise；抛错会向后传播，`catch` 可以恢复结果，`finally` 适合收尾。
- `async` / `await`：`async` 函数总是返回 Promise；`await` 只暂停当前函数，不阻塞页面。
- 并发：无依赖的任务先创建 Promise，再用 `Promise.all` 一起等待，避免不必要的串行。
- 组合 API：按失败策略选择 `all`、`allSettled`、`race` 或 `any`。
- 事件循环：同步代码完成后，Promise 微任务通常先于 `setTimeout` 定时器任务运行。

Java 对照：`Promise<T>` 接近
`CompletableFuture<T>`，但 JavaScript 的回调调度由浏览器或 Node.js 的事件循环驱动。`Promise.race`
只决定采用哪个结果，不会取消正在进行的网络请求；真实请求取消应使用 `AbortController`。
