2

我对事件发射器几乎没有疑问,但这对于可能的程序逻辑非常重要。

我正在使用一些外部库来触发我正在收听的事件。假设它触发 2 个事件:“数据”和“错误”。假设 lib 将始终在error之前调用data,如下所示:

emit('data', 'some data');
emit('error', 'some error');

问题是:我可以 100% 确定数据事件总是在我的监听方法中的错误事件之前出现吗?:

lib.on('data', function(data) {
            // is this always first
});

lib.on('error', function(error) {
            // or maybe this
});

谢谢,

伊万

4

1 回答 1

2

EventEmitteremit函数是一个同步阻塞函数。因此,与任何其他阻塞函数一样,它保证按照调用它的确切顺序执行。

于 2014-04-01T14:38:44.113 回答