【问题标题】:Creating NPM Package custom events创建 NPM 包自定义事件
【发布时间】:2020-04-15 01:41:41
【问题描述】:

我正在使用 signalr 构建一个简单的 npm 包。 流程是这样的:

  • 用户安装安装我的包
  • 包使用信号器打开连接
  • 在某些时候,服务器调用一个函数并向它发送数据。
  • 用户应该能够“倾听”并等待这些数据

我希望用户执行以下操作:

myPackage.on(“dataInTheHouse”, (data) => {
const myData = data;
});

或多或少...

我尝试使用名为“event-emitter”的npm包,但不明白如何为所有事件制作动态函数,老实说有点困惑。

我应该怎么做才能做到这一点?

【问题讨论】:

    标签: javascript typescript events npm dom-events


    【解决方案1】:

    答案更新:

    我设法做到了以下方式。 (顺便说一下,我用打字稿写了我的包):

    您需要声明一个新变量。 例如:

    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/

    【讨论】:

    • 因为你在写一个包,我建议你暴露一个更“严格”的api。因此,您可以使用events.onDataInTheHouse 而不是events.on(“dataInTheHouse”...),并且您可以为特定事件设置特定参数。
    猜你喜欢
    • 2018-07-14
    • 1970-01-01
    • 2014-06-14
    • 2015-10-01
    • 1970-01-01
    • 2020-07-05
    • 1970-01-01
    • 1970-01-01
    • 2020-12-05
    相关资源
    最近更新 更多