可以说我们有一个叫做的函数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] 删除。
我来说两句