Node.js是否保證先發出的事件先被執行?
发布于 13 年前 作者 byvoid 5027 次浏览 最后一次编辑是 8 年前

例如我emit了兩個事件event1和event2,是否有機制可以保重event1的監聽函數先被執行?

7 回复

async和eventproxy这两个库可以满足吧

Node.js原生的機制可以滿足嗎?

@byvoid 貌似是不可以的,从来没看到过

应该不行 node原生是做异步的吧。。想同步执行貌似需要逻辑上控制了吧。。

自己写个队列吧,不复杂。

应该是能保证的吧。貌似执行emit()之后,会立即调用相应的事件监听程序,这个过程是阻塞的。 比如

emit('event1');
// 依次执行完event1事件的监听器之后
emit('event2');

但如果event1里面的程序是异步的,这个就不能保证了。

我只是確認一下,並非有這樣的需求。

回到顶部