JavaScript 面试题
目录

JavaScript 中 Promise 的三种状态是什么?

· 约 3 分钟读完 · 第 394 / 507 章

推荐答案

JavaScript 中 Promise 的三种状态是:

  1. Pending(等待中):初始状态,既没有被兑现,也没有被拒绝。
  2. Fulfilled(已兑现):表示操作成功完成。
  3. Rejected(已拒绝):表示操作失败。

本题详细解读

Pending(等待中)

  • 定义:Promise 对象刚被创建时的初始状态。此时,Promise 既没有被兑现,也没有被拒绝。
  • 特点:在这个状态下,Promise 可以转换为 Fulfilled 或 Rejected 状态。

Fulfilled(已兑现)

  • 定义:表示 Promise 已经成功完成,并且已经返回了一个值。
  • 特点:一旦 Promise 进入 Fulfilled 状态,它将不再改变状态,并且会调用 .then() 方法中的回调函数。

Rejected(已拒绝)

  • 定义:表示 Promise 操作失败,并且已经返回了一个错误原因。
  • 特点:一旦 Promise 进入 Rejected 状态,它将不再改变状态,并且会调用 .catch() 方法中的回调函数。

状态转换

  • Pending -> Fulfilled:当异步操作成功完成时,Promise 从 Pending 状态转换为 Fulfilled 状态。
  • Pending -> Rejected:当异步操作失败时,Promise 从 Pending 状态转换为 Rejected 状态。

示例代码

在这个示例中,Promise 初始状态为 Pending,1秒后根据 success 变量的值,Promise 会转换为 Fulfilled 或 Rejected 状态。