GetStream.io 聊天 API - 停止监听流中的频道事件

GetStream.io Chat API - Stop Listening for channel Events in Stream

关于如何使用 Stream Chat 在 JS 中停止监听频道事件的文档让我感到困惑 API。 As per the docs:

// remove the handler for all "message.new" events on the channel
channel.off("message.new", myChannelEventHandler);

什么是myChannelEventHandler

我的 channel.on 看起来像这样,来自示例 Angular 应用程序:

this.channel.on('message.new', event => {
    this.messages = [...this.messages, event.message];
});

这是文档中唯一一次 myChannelEventHandler 引用,如有任何指导,我们将不胜感激。

感谢 Taplar,我已经开始工作了。解决方法很简单:

定义消息事件处理程序,并为 Angular 组件创建 属性 class:

messageEventHandler = event => {
    this.messages = [...this.messages, event.message];
};

为通道使用事件处理程序:

this.channel.on('message.new', this.messageEventHandler)

对频道关闭使用相同的事件处理程序:

this.channel.off('message.new', this.messageEventHandler)

我建议重构代码,以便您可以在 channel.off 中引用您的函数。这更像是一个 JavaScript 语言问题

const myChannelEventHandler = event => {
    this.messages = [...this.messages, event.message];
}

this.channel.on('message.new', myChannelEventHandler);

// remove the handler for all "message.new" events on the channel
// Apply this whenever you need
channel.off("message.new", myChannelEventHandler);