JavaScript 承诺
JavaScript 承诺
我 假设你是一家大餐厅的服务员。您负责许多表。如果您必须就座、接受订单、带饮料、带食物、检查他们的工作情况、补充饮料、处理账单和清理桌子,所有这些都在您所在区域的另一张桌子上等待,您会做得如何?我假设不是很好(Kubow,2021 年)。现在想象一下,您有一个网站在等待来自其他地方的数据库的信息,因此您暂停加载页面的其余部分,直到获得全部内容。或者更糟糕的是,在等待某些信息时,页面的其余部分会崩溃,因为它依赖于拥有该信息。人们使用您的网站的可能性有多大?就像这些场景一样,JavaScript 承诺,承诺解决这个困境。
Promise 是 JavaScript 对象,它有两个部分,一个是查看它正在等待或等待发生的部分,一个是说明它完成后会发生什么的部分。 Promise 具有三个状态值:待处理、已完成和已拒绝。这意味着代码部分将运行,例如在显示数据的按钮上创建侦听事件,只有在检索到数据并且在程序等待数据时仍然可以处理代码的其他部分之后。 Promise 不使用回调甚至嵌套回调,而是使用“.then”关键字告诉程序一旦 Promise 解决会发生什么。这也非常有用,因为您可以将多个“.then”相互链接,程序将按顺序执行这些(nd)。
这是一个 Promise 代码片段的示例。它上面有一个计时器,可以模拟 API 中的大量列表所花费的更多时间(Pavlutin,2021 年):
函数 getList() {
返回新的承诺((解决)=> {
setTimeout(() => 解决([“苹果”, “香蕉”]), 3000);
});
}
功能查找水果(种类){
getList().then((list) => {
const found = list.some((fruit) => fruit === kind);
控制台.log(找到);
});
}
查找水果(“苹果”); // 记录为真
参考
Javascript 承诺。 (nd)。检索于 2022 年 9 月 13 日,来自 https://www.w3schools.com/js/js_promise.asp
Pavlutin, D.(2021 年 7 月 18 日)。 JavaScript 中的 Promise 是什么? 德米特里帕夫卢廷博客。检索于 2022 年 9 月 13 日,来自 https://dmitripavlutin.com/what-is-javascript-promise/
使用 Promise — javascript: MDN . JavaScript | MDN。 (nd)。检索于 2022 年 9 月 13 日,来自 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises
库博,A.(2021)。 异步 JavaScript 第 4 部分:承诺 .检索于 2022 年 9 月 13 日,来自 https://www.youtube.com/watch?v=slIJj-zbs_M。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明