NodeJS EventEmitter中的事件发件人

时间:2017-10-15 20:16:16

标签: node.js eventemitter

在一个NodeJS应用程序中,我需要知道子进程退出时需要知道的几个子进程,问题是EventEmitter调用的回调函数没有事件的发送者。

我做了很多.NET开发,他们的事件总是有sender参数和arguments参数。

我如何知道哪个子进程发送了该事件?

我可以做类似

的事情

const childProcess = fork(...) childProcess.on('exit', function(code, signal) { myCallback(childProcess, code, signal); }

但后来我无法从该特定事件处理程序中取消注册。

2 个答案:

答案 0 :(得分:1)

答案是this将设置为引用发件人。

来源https://nodejs.org/api/events.html

  

eventEmitter.emit()方法允许任意一组参数   传递给监听器函数。记住这一点非常重要   当EventEmitter调用普通的侦听器函数时,   标准这个关键字有意设置为引用   监听器附加到的EventEmitter。

答案 1 :(得分:0)

cluster.worker.pid通常是获取进程ID的好方法(因为fork会导致这样的事件)。

的console.log(cluster.worker.pid);