JavaScript Promises 101

2025-06-04

JavaScript Promises 101

嘿!你是 JavaScript 新手吗?那么,这篇文章正适合你!如果你想成为一名 JavaScript 开发者,掌握 Promise 是必须的!

Promise 代表现在未知但将来可能已知的值;换句话说,是一个异步值。
替代文本

Promise 始终处于以下状态之一:

  • pending:初始状态,既未完成也未拒绝。
  • fulfilled:表示操作已成功完成。
  • 拒绝:表示操作失败。

现在,假设你饿了(实际上我现在就饿了),正准备用外卖APP订餐。你打开APP,找到你想点的菜,然后点击“下单”。这时,餐厅/APP会发出通知,Promise表示会把食物送到你手上。在你等待的时候,外卖已经送到了pending。以后,如果一切按计划进行,餐厅/APP会把resolve食物送到你手上,此时你的订单已经送到了fulfilled。但在某些情况下,餐厅/APP可能会reject拒绝你的订单,这时你就得再点别的菜了。无论哪种情况,最初的请求最终都会得到解决。

更多技术解释

现在,让我们用更专业的语言来解释一下。作为开发人员,你会创建一个 Promise 来表示异步值。但实际上,你更常做的是使用 Promise 来在代码中使用异步操作的结果。

让我们创建一个承诺。

const food = new Promise((resolve, reject) => {
                               //☝️*
  if (delivered) {
    resolve("food delivered 🥘");
    // resolve fulfills promise with passed value
  } else {
    reject("you're still starving... 😭");
    // reject triggers when operation fails
  }
});
Enter fullscreen mode Exit fullscreen mode

*👉 执行器,f-on 解析一个值或拒绝(错误)

现在让我们来使用 Promise。

food
  .then(value => {
    console.log(value); // food delivered 🥘
  })
  .catch(error => {
    console.log(error); // you're still starving... 😭
  })
  .finally(() => {
    console.log("all settled!");
  });
Enter fullscreen mode Exit fullscreen mode

then是一个处理履行的函数。catch处理拒绝;捕获错误。最后,finally如果你想要运行某些代码,无论发生什么。


我希望这能帮助你获得 JavaScript Promises 的基本知识和概述 :)

与往常一样,我们非常感谢任何反馈!

祝你一切顺利,
达利博尔

文章来源:https://dev.to/daliboru/javascript-promises-101-3h56
PREV
在 React 中实现代码拆分
NEXT
创建您的第一个 Github 包