在没有超时的情况下获取'poof1'事件的正确方法是什么?现在它只是'poof2'了。
function Em(cfg){
let event = new EventEmitter();
event.emit('poof1');
setTimeout(() => {
event.emit('poof2');
}, 1000);
return event;
}
let em = new Em();
em.on('poof1', () => {
console.log('event 1');
});
em.on('poof2', () => {
console.log('event 2');
});
答案 0 :(得分:0)
您在发出事件(.on
)后附加了poof1侦听器(.emit
)
在超时内包装的那个工作正在工作,因为延迟了给监听器附加时间。
尝试重构一下你的代码
let em = new EventEmitter();
em.on('poof1', () => {
console.log('event 1');
});
em.on('poof2', () => {
console.log('event 2');
});
event.emit('poof1');
event.emit('poof2');