Javascript Node.js模块不通信
我正在通过构建个人项目自学node.js。我试图通过将代码拆分为单独的模块来遵循最佳实践。但是,我遇到了一个问题,其中一个模块正在与调用者模块通信。我使用了回调函数和事件,但是调用方模块永远不会从被调用模块返回任何内容,除非被调用模块立即返回值。请查看下面的代码,让我知道我缺少什么: blogs.controller.js(调用方模块) ImageParser.js(称为模块) 在ImageParser函数中,我可以侦听事件,但在它之外,我不能。任何帮助都将不胜感激Javascript Node.js模块不通信,javascript,node.js,events,asynchronous,Javascript,Node.js,Events,Asynchronous,我正在通过构建个人项目自学node.js。我试图通过将代码拆分为单独的模块来遵循最佳实践。但是,我遇到了一个问题,其中一个模块正在与调用者模块通信。我使用了回调函数和事件,但是调用方模块永远不会从被调用模块返回任何内容,除非被调用模块立即返回值。请查看下面的代码,让我知道我缺少什么: blogs.controller.js(调用方模块) ImageParser.js(称为模块) 在ImageParser函数中,我可以侦听事件,但在它之外,我不能。任何帮助都将不胜感激 谢谢我在另一个问题的答案中找
谢谢我在另一个问题的答案中找到了我的答案,答案是@linus-g-thiel 还有,感谢@Pointy
事实证明,我需要从方法而不是构造函数发出事件,并且侦听器需要在方法调用之前发出。它现在正在工作。您为“imagesParsed”设置了一个处理程序,但代码会发出一个名为“imagesParse”的事件。此外,从构造函数内部发出事件也没有多大意义。感谢您捕捉到这一点。这只是一个输入错误,而不是在我的实际代码中。即使我从ImageParser上的方法发出事件,调用方模块仍然没有听到任何声音。
var ImageParser = require('../../components/parsers/ImageParser.js');
.....
var imageParser = new ImageParser();
imageParser.on('imagesParsed', function(){
console.log('test)});
var EventEmitter = require('events').EventEmitter;
var util = require('util');
var ImageParser = function(){
this.emit('imagesParsed');
};
util.inherits(ImageParser, EventEmitter);
module.exports = ImageParser;