Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js模块不通信_Javascript_Node.js_Events_Asynchronous - Fatal编程技术网

Javascript Node.js模块不通信

Javascript Node.js模块不通信,javascript,node.js,events,asynchronous,Javascript,Node.js,Events,Asynchronous,我正在通过构建个人项目自学node.js。我试图通过将代码拆分为单独的模块来遵循最佳实践。但是,我遇到了一个问题,其中一个模块正在与调用者模块通信。我使用了回调函数和事件,但是调用方模块永远不会从被调用模块返回任何内容,除非被调用模块立即返回值。请查看下面的代码,让我知道我缺少什么: blogs.controller.js(调用方模块) ImageParser.js(称为模块) 在ImageParser函数中,我可以侦听事件,但在它之外,我不能。任何帮助都将不胜感激 谢谢我在另一个问题的答案中找

我正在通过构建个人项目自学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;