gpt4 book ai didi

node.js - 使用 process.nextTick 发出事件是否优于内联发出事件?

转载 作者:太空宇宙 更新时间:2023-11-04 02:53:42 25 4
gpt4 key购买 nike

node.js 中有很多事件的发送和监听。

我正在尝试决定是否应该内联发出事件,然后从函数返回,或者通常应该使用 process.nextTick 发出事件,导致它们稍后运行。

一般来说,哪种方法是正确(最好)的?

有人告诉我node.js的内置模块大多使用process.nextTick。

最佳答案

通常在 Node v0.10 及更高版本中,您应该使用 setImmediate。我在我的博客文章 setTimeout and friends 中介绍了所有各种选项。 。使用事件发射器需要注意的要点是,在开始发射事件之前,您需要允许调用者至少一键绑定(bind)其事件监听器。这种模式通常被认为是可以的并且应该被支持:

var myThing = new Thing();
//if myThing immediately emits events,
// they will be missed because they aren't bound yet
myThing.on('event', handleEvent);
//If events are delayed at least one tick, all is well,
// the listener is bound and all events are handled

对于 v0.10 之前的 Node ,应使用 process.nextTick

请注意,如果发射器的逻辑自然需要异步调用(因为它执行 I/O),则不需要 setImmediate,因为执行 I/O 已经允许事件循环完成滴答。仅在有时需要执行 I/O 的情况下才需要 setImmediate,但在这种情况下您不需要它,例如,您有先前 I/O 的缓存结果。

关于node.js - 使用 process.nextTick 发出事件是否优于内联发出事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22945896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com