Node.js上与事件相关的递归

漫无目的

可以说我们有一个叫做的函数doSomething()

在此函数中,我声明了一个名为的对象dispatcher

dispatcher具有异步工作的功能,并在'end'事件结束时忽略事件。

因此,代码如下所示:

const doSomething = () => {
    const dispatcher = someObject.function.thatReturnsDispatcher();
}

因此,此doSomething()函数并非完全没有用,实际上除了分配单个变量外,还dispatcher可以做更多的事情,我希望它能做与doSomething()异步函数结束时相同的工作。所以我做这样的事情:

const doSomething = async () => {
    //important stuff above

    const dispatcher = someObject.function.thatReturnsDispatcher();
    dispatcher.on('end' , () => {
        doSomething();
    });

    //important stuff below
}

而且有效!

但我想知道一件事:

调用该函数时,该函数doSomething()是递归工作还是该函数结束并且节点保存该discpatcher.on('end')函数并在end事件省略时调用它

易卜拉欣·马尔里尔

实际上两者都有。

毫无疑问,它doSomething是递归调用的(下次调用doSomething发生在当前doSomething调用中)。

并且,根据您在注释掉的内容中所做的事情,doSomething可能会在调用调度程序回调之前dispatcher.on结束,无论事情是否doSomething结束,在事情结束时注册要调用的回调

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Node JS 同步事件

来自分类Dev

Node js中的复杂递归

来自分类Dev

Node.js事件循环

来自分类Dev

Node.JS事件错误

来自分类Dev

Node.js - process.stdin.on 上的递归函数会导致不必要的重复行为

来自分类Dev

递归,Node js和异步调用

来自分类Dev

Node.js异步并行递归

来自分类Dev

在Ubuntu 12.04上使用http.createServer()。listen()时,Node.js未处理的“错误”事件

来自分类Dev

通过Nginx在Node.js上的服务器发送事件连接超时

来自分类Dev

Node.js EventEmitter事件不再在节点12.1+上触发

来自分类Dev

通过Nginx在Node.js上的服务器发送事件连接超时

来自分类Dev

Node.js EventEmitter事件不再在节点12.1+上触发

来自分类Dev

在Debian上安装Node JS

来自分类Dev

Node.js 上的 SaxonJS

来自分类Dev

RxJS分组发出的事件Node.js

来自分类Dev

Node.js中的子事件顺序

来自分类Dev

同步node.js中的查询(或事件)

来自分类Dev

检查node.js事件循环中的事件

来自分类Dev

Node.js EventEmitter事件不共享事件循环

来自分类Dev

Alexa Node JS 如何处理多个事件的取消事件

来自分类Dev

使用Node.js + CoffeeScript + MySQL进行几个相关的插入

来自分类Dev

在AWS Zip中捆绑Node.js相关性

来自分类Dev

Node.js中与版本相关的类型继承

来自分类Dev

JS:在Node.js上创建报告

来自分类Dev

事件订购ExpressJS / Node

来自分类Dev

了解node.js中对递归函数的承诺

来自分类Dev

Node.js项目依赖关系的过度递归

来自分类Dev

Node.js的异步调用和递归

来自分类Dev

Node.js递归验证fswrite的文件名