我正在通过构建个人项目来自学node.js。我试图通过将代码拆分为单独的模块来遵循最佳实践。但是,我遇到了一个问题,其中我的一个模块正在与调用方模块通信。我已经使用了回调函数和事件,但是调用者模块从不从被调用模块获取任何东西,除非被调用模块立即返回一个值。请查看下面的代码,让我知道我所缺少的内容:
blogs.controller.js(调用方模块)
var ImageParser = require('../../components/parsers/ImageParser.js');
.....
var imageParser = new ImageParser();
imageParser.on('imagesParsed', function(){
console.log('test)});
ImageParser.js(称为模块)
var EventEmitter = require('events').EventEmitter;
var util = require('util');
var ImageParser = function(){
this.emit('imagesParsed');
};
util.inherits(ImageParser, EventEmitter);
module.exports = ImageParser;
在ImageParser函数中,我可以监听事件,但是在事件之外,我不能监听。任何帮助将不胜感激。
谢谢
最佳答案
我实际上在另一个问题的答案中找到了答案,答案是@ linus-g-thiel
另外,感谢@Pointy
原来,我需要从方法而不是构造函数发出事件,并且侦听器需要在方法调用之前。现在正在工作。