当前位置: 首页 > 面试题库 >

了解Node.js中的承诺

桑思远
2023-03-14
问题内容

据我了解,有三种调用异步代码的方法

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

我找到了节点承诺库,但是我不明白。

有人可以解释什么是诺言,为什么我要使用它?

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


问题答案:

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

关于promise的很酷的事情是您可以将它们组合到依赖关系链中(仅在Promise A Promise B完成时才执行Promise C )。

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



 类似资料:
  • 问题内容: 我正在尝试使用递归调用从redis中获取数据,并在成员返回null时停止并返回。 所以我的数据是这样添加的: 最终数据应如下所示: 这是我正在弄乱的代码(从不同来源将它们拼凑在一起),但是我不知道自己在做什么。不知道这段代码是否有用,我可能会偏离正轨。 我可以看一下示例,从理论上看它应该如何工作,但是我无法确定它如何与q实现一起工作。任何帮助将不胜感激。 问题答案: 兑现承诺时,尽量做

  • 本文向大家介绍了解node.js中的npm脚本,包括了了解node.js中的npm脚本的使用技巧和注意事项,需要的朋友参考一下 到目前为止,我们正在使用以下命令运行App.js- 节点App.js 我们可以使用npm脚本来运行或调试我们的应用程序。 如何启动节点项目 命令是-npm init 上面的命令将启动一个项目,它将询问有关项目名称和启动文件名等的几个问题。 由于我们拥有App.js文件,因

  • 问题内容: 我需要从两个Web服务器请求数据。任务是独立的;因此,我正在使用aync.parallel。现在,我只在网页正文中写入“ abc”,“ xyz”和“完成”。 由于任务是同时执行的,我能否遇到奇怪的输出?例如, 代码。 问题答案: 如果要绝对确定结果的打印顺序,则应通过回调(第一个参数是错误)传递数据(和),并在最终的回调参数中处理/写入它们。

  • 问题内容: 我是JavaScript OOP的新手。您能否解释以下代码块之间的区别?我测试了两个模块。什么是最佳做法,为什么? 第一块: 第二块: 为什么笔者添加和使用方法,并没有宣布他们的内部方法类和在类? 为什么需要重新设置为?是当覆盖的属性设置?我注释了这一行,没有任何改变。 为什么叫在构造函数?当我这样做时,不会被“继承”的属性和方法 问题答案: 这两个块的不同之处在于,在第一个示例中该实

  • 问题内容: 我是一个长期的PHP(CodeIgniter和WordPress)开发人员,直到最近才想学习其他几种语言。我已经着手通过node.js学习Ruby(在Rails和Sinatra上),Python(在Flask框架下)和Javascript。 我决定使用每种语言创建一个我能想到的最基本的应用程序,即URL扩展器。除了node.js和Javascript,我已经设法用每种语言创建了一个工作

  • 问题内容: 我正在用Java 构建一个类。逻辑本身可以工作并找到期望的解决方案(带有任意数量的参数)。无论如何,部分项目如我所料。 问题来自解决方案表示的问题。可以公平地说,我已经用Python完成了这个项目,并决定尝试使用Java作为一种介绍,这可能是问题所在,我也想像Python一样这样做。 这是我的一些课程: 问题是它仍然从Operation类获取令牌:“ null” 我知道这可能是因为op