node EventEmitter

2020-05-14 11:19:14 +08:00
 TomVista

想在 event.emmit('eventName') 执行完异步事件之后 触发一个 end 事件,怎么做?

暴露 event 给 listener 吗?

const event = new (require('events').EventEmitter)
event.on('name',(event)=>{
	// dosomething
    setTimeout(()=>{
        ...
        event.emmit('nameEnd')
    },100)
    
})

event.on('nameEnd',()=>{
	console.log(name)
})

event.emmit('name',event)
4409 次点击
所在节点    Node.js
1 条回复
JayLin1011
2020-05-15 12:04:21 +08:00
const EventEmitter = require('events');

const event = new EventEmitter();

event.on('eventEnd', () => {
console.log('異步事件執行後觸發 eventEnd 事件');
});

event.on('eventAsync', function () {
setImmediate(() => {
console.log('異步事件觸發');
// to do...
this.emit('eventEnd');
});
});

event.emit('eventAsync');

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/671537

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX