gpt4 book ai didi

javascript - 对于 NodeJs Promise,Await 和 Then 哪个更好?以及等待如何工作

转载 作者:行者123 更新时间:2023-12-05 00:46:52 25 4
gpt4 key购买 nike

您好,我刚开始使用 nodejs,我阅读了一些关于异步函数的文章。有一些事情让我很困惑,我希望在这里得到一些解释或推荐的 Material 。

  1. 我知道在异步函数中,我们可以使用 then 来解决一个 Promise,也可以使用 'await' 来等待 Promise 解决。哪个更好?还是它们的机制相同?
  2. 实际上,我在 nodejs 异步函数中使用了多个 await,据我了解,await 将停止脚本并等待。这听起来像一个同步函数,对吧?那么为什么我们需要等待呢?这是在 Node 中进行编码的好方法吗?
  3. 我在 angularJS 中调用这些异步函数(使用 promise.then())来获得结果。它是如何工作的?我的意思是,当 Angular 调用 Node 函数时会发生什么,它们是如何通信的?

如果有不清楚的地方请评论。非常感谢

最佳答案

一个异步函数,总是返回一个挂起的Promise,它会用函数返回的值来解析(所以函数异步运行)

使用 await,当前函数被挂起,直到与 await 关联的 promise 被解析(因此 await 下面的 javascript 被转换到等待的 promise 的 then())

使用then(),你在声明promise后留在函数中,这意味着你可以并行启动多个promise。

await 很有趣,因为当您必须等待结果才能继续执行函数时,它可以简化代码,例如对函数的其余部分使用 then

因为 await 会暂停代码,所以 await 下的所有内容都会被延迟,包括任何新的 promise。所以如果你想在后台启动所有的promise,你必须在使用任何await之前声明它们并将它们存储到变量中,像这样:

var p1 = new Promise(...)
var p2 = new Promise(...)
try {
let r1 = await p1;
let r2 = await p2;
} catch (e) {}

关于javascript - 对于 NodeJs Promise,Await 和 Then 哪个更好?以及等待如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59430432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com