有人可以解释一下为什么下面的代码不起作用:
我有一个 EventManager 类:
const events = require('events')
class EventManager extends events.EventEmitter {
constructor() { super() }
}
const instance = new EventManager()
module.exports = instance
我有一个 init.js 文件,需要这个 EventManager 并注册一些如下事件:
const EventManager = require('./EventManager')
const processTask = require('./processTask')
EventManager.on('startTask', (task) => {
processTask(task)
})
EventManager.on('endTask', (task) => {
//some code
})
const someTask = {}
EventManager.emit('startTask', someTask)
在我的 processTask 函数中,我调用 EventManager 并发出 endTask 事件:
// processTask.js
const EventManager = require('../lib/EventManager')
module.exports = (task) => {
// some code
EventManager.emit('endTask')
}
但是 endTask 从未发出,为什么?
最佳答案
这是//某些代码中的问题。谢谢@Bergi 和@poeticGeek。
关于javascript - NodeJS 自定义类扩展 EventEmitter 和 require,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41675621/