NodeJS自定义类扩展EventEmitter和require

时间:2017-01-16 11:42:00

标签: javascript node.js ecmascript-6 eventemitter

有人可以解释为什么以下代码无效:

我有一个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,为什么?

1 个答案:

答案 0 :(得分:1)

这是一些代码中的问题。 thx @Bergi和@poeticGeek。