gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 18:02:22 24 4
gpt4 key购买 nike

我正在尝试“桥接”两个事件监听器,以便通过单个事件触发它们。此外,在这个“链”中,我可以将额外的值作为参数传递给后面的监听器。

我试过如下实现

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)

干杯。

附言我使用 Node v0.10.5

最佳答案

很抱歉自己的回答,但我找到了解决方案。

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);

关于javascript - 用一个事件桥接两个事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16636488/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com