正在创建NPM包自定义事件



我正在使用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/

最新更新