gpt4 book ai didi

node.js - Node 做出什么事件顺序保证?

转载 作者:太空宇宙 更新时间:2023-11-03 22:55:25 24 4
gpt4 key购买 nike

我在文档中看到监听器将被执行 "in order"对于给定的事件,但是还有什么其他保证呢?例如,以下代码是否保证按顺序打印 0 到 9,或者这只是当前实现的副作用?

var EventEmitter = require('events').EventEmitter
var ev = new EventEmitter();

ev.on("foo", console.log);

for (var i = 0; i < 10; i++) {
ev.emit("foo", i);
}

最佳答案

For instance, is the following code guaranteed to print 0 through 9 sequentially

嗯。我认为任何地方的文档实际上都没有保证这一点,但这是事件队列工作的唯一合理方式。如果事件没有按照发送的顺序传递,则可能会导致接收端的逻辑非常困惑。

正如您的问题的评论之一所指出的,在全 JavaScript 的情况下,它不能以任何其他方式工作,因为事件是在 emit() 调用期间同步分派(dispatch)的。对于 native 对象,类似的情况也适用 - 它们需要通过 V8 绑定(bind)调用 emit(),因此最终这些事件也按照 native 代码发送它们的顺序传递。

关于node.js - Node 做出什么事件顺序保证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17751777/

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