如何在 angular 或 rxjs 中的函数上生成动态自定义事件侦听器?

问题描述

我带着一项具有挑战性的 javascript 任务回来了。

我想在 javascript 中制作这样的流程。 说明:

我正在使用 mtqq 库,我想通过它在网络上显示通知。当后端在特定主题或频道上发送消息时,前端将侦听该消息,然后执行一些操作。

问题在于,与 mqtt 的连接只会建立一次,然后订阅/取消订阅主题/频道将根据功能执行多次。

所以我想像这样多次订阅主题

service.subscribeto("ping").on("message",function() {
    console.log("message from ping topic");
})

但问题是我如何使用js在angular service中编写这种函数

var client = connectToServer("websocket url");

client.addEventListener("onMessage",function(...args) => {
    var topic: string = args[0];
    var message: string = args[1];

    what should I write here to filter custom event named from topic's value: 

    [topic].emit();   // this will fire custom event written with subscribeto(topic).on(callback);
})   

subscribeto(topic) {
    // this topic name should be custom handler function that will call from **onMessage** event listner.
    client.subscribe(topic);


    return { 
          on: (handler) => { handler() } 
    }
}

当前场景:

我已经根据主题名称在“ONMessage”回调中手动过滤了执行的操作。我想在单独的回调上执行该操作,该回调是用每个 Subscribeto() 在侦听器上编写的 --> .on(here)。

我怎样才能动态地创建从一个函数触发的自定义事件,但每次它都会根据主题名称调用不同的回调?

如果有人知道,请帮助我。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)