了解 Node 中的承诺.js

2022-08-30 03:04:03

据我所知,有三种调用异步代码的方法:

  1. 事件,例如request.on("event", callback);
  2. 回调,例如fs.open(path, flags, mode, callback);
  3. 承诺

我找到了节点承诺库,但我没有得到它。

有人可以解释一下承诺是什么,以及为什么我应该使用它吗?

另外,为什么从Node.js中删除它?


答案 1

由于这个问题仍然有很多观点(像我一样),我想指出:

  1. node-promise在我看来相当死(上一次提交大约是1年前),并且几乎不包含任何测试。
  2. futures模块对我来说看起来非常臃肿,并且记录得很差(我认为命名约定很糟糕)
  3. 最好的方法似乎是q框架,它既活跃又有据可查。

答案 2

node中的 promise.js承诺做一些工作,然后有单独的回调,这些回调将执行成功和失败以及处理超时。在 node.js 中考虑承诺的另一种方法是,它们是只能发出两个事件的发射器:成功和错误。

关于承诺的很酷的事情是你可以将它们组合成依赖链(只有当承诺A承诺B完成时,才做承诺C)。

通过从核心节点中删除它们.js,它创造了构建具有不同承诺实现的模块的可能性,这些模块可以位于核心之上。其中一些是节点承诺期货