CNode

Node.js是否保證先發出的事件先被執行?

Bbyvoid发布于14 年前最后回复14 年前7 回复5756 浏览0 收藏

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

查看回复

回复 (7)

S
sumory#1·14 年前

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

B
byvoid#2·14 年前
引用 sumoryasync和eventproxy这两个库可以满足吧

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

S
sumory#3·14 年前
引用 sumoryasync和eventproxy这两个库可以满足吧

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

G
guang384#4·14 年前
引用 sumoryasync和eventproxy这两个库可以满足吧

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

D
DoubleSpout#5·14 年前

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

L
leizongmin#6·14 年前

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

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

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

B
byvoid#7·14 年前
引用 DoubleSpout自己写个队列吧,不复杂。

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

参与回复
登录后即可参与回复。登录