15分钟内做出承诺

2025-05-25

15分钟内做出承诺

各位朋友晚上好!

让我们简化 Promises 的使用?

特别是,当我刚开始学习编程并接触 Promises 的概念时,我看到很多在线资料和教程对 Promises 的解释非常令人困惑,所以我决定写一篇简单易懂的文章,用非常实用的方式解释它。当然,如果你需要了解“Promises 的底层原理”,那么这篇文章并不适合你。如果你需要在短时间内理解 Promises 并提出解决方案,那么这篇文章适合你。

本质上,Promise 是为了在 JavaScript 中创建更强大的异步回调函数,使代码更易于组织。要理解这个概念,请将其理解为我们在现实生活中做出的承诺。例如:

  • 我保证在 15 分钟内让你理解 Promises。

为了这个承诺,我可以做两件事:

  • 我可以在 15 分钟内让您理解 Promises,从而获得成功。
  • 或者我可能会失败,而你在 15 分钟内不会理解 Promises。

在代码中,情况完全一样。好的,我们来看一下。

替代文本

该脚本的输出是:This is in then: success

这里,我们在 Promise 函数内部有一个块,它将 1 + 1 相加。如果结果为 2,则表示我们的 Promise 成功;否则,表示我们的 Promise 被拒绝了,因为1 + 1 = 2。如果我们改变和的值,就会被拒绝,因为我们说和的变量是 2。如果不是,则 Promise 被拒绝。

替代文本

该脚本的输出是:This is in catch: failed.

现在我们来分析一下这段代码

替代文本

此代码会查看您是否正在使用 Angular 或 Vue,如果其中一个为真,它会调用一个回调函数,该函数发送带有标题和消息的警报。

替代文本

现在让我们将其更改为 Promise 并使此代码变得更好。

首先,我们创建一个实例化 Promise 的函数,并传入参数resolverejection。然后,我们编写想要在 Promise 中执行的代码。就我而言,我希望确保开发者使用的是 React 库。因此,我进行了验证,并 dispatch 了当 Promise 解析和拒绝时要执行的操作。如下所示:

替代文本

之后,我编写了then函数来调用我的 Promise,并且可以在该块中执行任何我想做的事情。当该 Promise 完成时,我希望在控制台中记录一条消息,无论是解决还是拒绝。THEN 块中的代码在我的 Promise 被解决时运行,而CATCH块中的代码在我的 Promise 被拒绝时运行。

替代文本

替代文本

不错吧?

此外,当我们需要同时做出两个或多个 Promise 时,我们可以使用Promise.ALL来同时做出 Promise。

替代文本

输出将是

替代文本

或者,如果我们需要获取第一个执行的 Promise 的结果并忽略即将到来的 Promise,则使用Promise.RACE 。

替代文本

输出将是

替代文本

我想就是这样了!

一些参考:

谢谢你!

文章来源:https://dev.to/marianesantana/promises-in-15-minutes-9l7
PREV
15+ 超棒的 Tailwind CSS 模板和主题
NEXT
2022 年的代码有什么问题?🤷🏻‍♀️