我正在使用signaler构建一个简单的npm包。流程如下:
- 用户安装安装我的软件包
- 包使用信号器打开连接
- 在某个时刻,服务器调用一个函数并向其发送数据
- 用户应该能够"监听"并等待此数据
我希望用户做一些类似的事情:
myPackage.on(“dataInTheHouse”, (data) => {
const myData = data;
});
或多或少。。。
我试着使用名为"事件发射器"的npm包,但不明白如何为所有事件生成动态函数,老实说,我有点困惑。
我该怎么做才能做到这一点?
应答更新:
我设法用下面的方法做到了。(顺便说一句,我用打字稿写了我的包(:
您需要声明一个新的变量。例如:
events = new EventEmitter();
然后,在服务器调用的函数中,我写了以下内容:
this.events.emit(“dataInTheHouse”, “This is the data we got!”);
我的包裹的消费者可以使用:
this.myPackage.events.on(“dataInTheHouse”, (data) => console.log(data));
就这么简单。
为了进一步阅读,我在这里找到了这个解决方案:https://css-tricks.com/understanding-event-emitters/