关于事件发射器,我有一点小问题,但它对于程序逻辑非常重要。
我正在使用一些外部库来触发我正在收听的事件。让我们说它会引发2个事件:'数据'和'错误'。假设lib总是在错误之前调用数据,如下所示:
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
});
谢谢,
伊万
答案 0 :(得分:2)
EventEmitter emit
函数是一个同步阻塞函数。因此,与任何其他阻塞函数一样,它保证按照调用它的确切顺序执行。