使用以下代码,我注册了一个 node.js 事件侦听器,等待来自 zeromq 连接的响应,该连接通过名为 zmqevent 的全局 nodejs EventEmitter 转发。
global.zmqevent.removeAllListeners(req.user._id)
global.zmqevent.on(req.user._id, function (msg, status) {
console.log('event triggered');
});
global.zmq_controller_pub.send(recipient + " " + String(req.user._id) + " " + "getReportSingle");
console.log("1");
console.log("1");
console.log("1");
console.log("1");
console.log("1");
console.log("1");
console.log("1");
console.log("1");
基本上事件队列有效。zmq_controller_pub.send 向我的外部脚本发出请求,响应到达 node.js,发出一个 node.js 事件,该事件触发上面定义的事件侦听器。
如何让事件侦听器在脚本末尾中断 console.log() 链?当前输出如下:
1
1
1
1
1
1
1
1
event triggered
基本上我想等待来自我的 zeromq 连接的响应 2 秒,如果没有响应到达,则触发和替代“离线”结果。但即使是这个简单的示例也不起作用,并且仅在脚本的最后触发事件。你有想法吗?显然,一定有一个愚蠢的错误......