JavaScript Promises 101
嘿!你是 JavaScript 新手吗?那么,这篇文章正适合你!如果你想成为一名 JavaScript 开发者,掌握 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
}
});
*👉 执行器,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!");
});
then
是一个处理履行的函数。catch
处理拒绝;捕获错误。最后,finally
如果你想要运行某些代码,无论发生什么。
我希望这能帮助你获得 JavaScript Promises 的基本知识和概述 :)
与往常一样,我们非常感谢任何反馈!
祝你一切顺利,
达利博尔