新实例中的EventEmitter

时间:2017-10-24 15:55:45

标签: node.js eventemitter

在没有超时的情况下获取'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');
});

1 个答案:

答案 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');