用一个事件桥接两个事件监听器

我试图“桥接”两个事件监听器,以触发他们与一个单一的事件。 而且,在这个“链”中,我可以将更多的值作为参数传给后面的听众。

我试图通过如下实现它

var events = require('events'); var receiv = new events.EventEmitter(); var midl = new events.EventEmitter(); receiv.on("test", function() { console.log("HERE", arguments); }); midl.on("test", receiv.on.bind(receiv, "test", "foo", "bar")); midl.emit("test", 123); 

然而,这种方法似乎错误的EventEmitter,因为我得到以下错误

 TypeError: listener must be a function at TypeError (<anonymous>) at EventEmitter.addListener (events.js:130:11) at EventEmitter.emit (events.js:95:17) at Object.<anonymous> (myEventTest.js:12:6) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Function.Module.runMain (module.js:497:10) at startup (node.js:119:16) 

干杯。

PS我使用节点v0.10.5

对不起自己的答案,但我find了解决scheme。

 var events = require('events'); var receiv = new events.EventEmitter(); var midl = new events.EventEmitter(); receiv.on("test", function() { console.log("HERE", arguments); }); midl.on("test", receiv.emit.bind(receiv, "test", "foo", "bar")); midl.emit("test", 123);