对于NodeJ Promise,哪个比Await Vs好?以及等待方式

时间:2019-12-20 19:28:08

标签: javascript node.js angular asynchronous async-await

嗨,我刚刚启动nodejs,我读了一些有关异步功能的文章。有些事情真的让我感到困惑,我希望在这里得到一些解释或推荐的材料。

  1. 我知道在异步函数中,我们可以使用then来解决承诺,也可以使用“ await”来等待对promise的解决。哪个更好?还是相同的机制?
  2. 实际上,我在nodejs异步函数中使用了多个await,据我所知,await将停止脚本并等待。这听起来像是同步功能,对不对?那么为什么我们需要等待呢?这是在Node中进行编码的好方法吗?
  3. 我在angularJS中调用这些异步函数(使用promise.then())以获得结果。如何运作?我的意思是,当角度调用节点功能出现时,我将如何处理?

如果不清楚,请发表评论。 非常感谢

1 个答案:

答案 0 :(得分:3)

#example arrays arr = np.array([0, 1, 2, 3, 4, 5, 6, 7], dtype=np.float32) values = np.array([0.2, 3.0, 1.5]) #get the indices where each value falls between values in arr between = [np.nonzero(i > arr)[0][-1] for i in values] 始终返回待处理的Promise,该Promise将使用该函数返回的值进行解析(因此该函数异步运行)

使用async function,当前函数将被挂起,直到与await关联的承诺被解决为止(因此await下面的javascript被转换为await中的{期待已久的承诺)

使用then(),您可以在声明了诺言之后停留在函数中,这意味着您可以并行启动多个诺言。

then()很有趣,因为它简化了代码,使您在继续执行功能之前必须等待结果,例如为功能的其余部分使用await

由于then暂停了代码,因此await下的所有内容都将被推迟,包括任何新的承诺。 因此,如果您想在backgound中启动所有的Promise,则必须在使用任何await之前声明并存储它们到变量中,如下所示:

await