【发布时间】:2016-02-14 15:26:32
【问题描述】:
我有如下模块,我想发出这样的事件:
文件aa.js
var EventEmitter = require("events").EventEmitter,
eventEmitterIns = new EventEmitter();
var preProcess = function (cb) {
...
var start = function () {
....
}).catch(function (err) {
//-------------HERE I EMIT THE EVENT-----------
eventEmitterIns.emit('test');
}
}
}
module.exports = {
preProcess: preProcess,
eventEmitterIns: eventEmitterIns
};
现在我想在其他模块中捕获此错误事件,当我执行以下操作时它对我不起作用:
bb.js
var invokeAppEvents = require('../controller/aa');
invokeAppEvents.eventEmitterIns.on('test', function () {
debugger;
}
);
如果我设置断点,它不会在调试器中停止;我该如何克服呢?
调用 catch 块内的代码!
我应该在 aa.js 中导出什么,在 bb.js 中我应该需要什么?
【问题讨论】:
-
看起来您的代码不应该发出事件。您只需分配一个发射器。
-
@grabantot - 在捕获中我发出事件,我想在其他模块中捕获它
-
在
bb.js中,你是否真的调用过preProcess以触发promise 的catch?你没有展示任何东西。如果您提供MCVE (C = "complete"),我们可以为您提供更好的帮助。 -
@T.J.Crowder - 我不使用 preProcess 我只想收听事件 eventEmitterIns ,我知道它在预处理过程中,但我该如何克服这个问题?
-
给我们更多的代码,这样我们就可以看到
catch被调用了。或者尝试自己在aa.js中设置断点。
标签: javascript node.js dom-events eventemitter