javascript - NodeJS 自定义类扩展 EventEmitter 和 require

标签 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 从未发出,为什么?

最佳答案

这是//某些代码中的问题。谢谢@Bergi 和@poeticGeek。

关于javascript - NodeJS 自定义类扩展 EventEmitter 和 require,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41675621/

相关文章:

php - 将值从 PHP 传递到 Javascript 的权威方法

javascript - proxychains 无法加载进程?

javascript - 在 Node.js 中使用装饰器

javascript - 为什么我不能在 Node.js shell 中要求模块?

javascript - 如何将两个数字相加?

json - NodeJs - 嵌套 JSON POST 输入

node.js - Nodejs 中的 Redis for 循环无法正常工作

gruntjs - 使用 es6 进行 Grunt 配置

javascript - 浏览器 intl.NumberFormat 未正确显示货币符号

javascript - 使用 jquery 向下滚动到单击按钮时选择的选项