在一个NodeJS应用程序中,我需要知道子进程退出时需要知道的几个子进程,问题是EventEmitter调用的回调函数没有事件的发送者。
我做了很多.NET开发,他们的事件总是有sender
参数和arguments
参数。
我如何知道哪个子进程发送了该事件?
我可以做类似
的事情 const childProcess = fork(...)
childProcess.on('exit', function(code, signal) {
myCallback(childProcess, code, signal);
}
但后来我无法从该特定事件处理程序中取消注册。
答案 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);