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);
关于如何使用 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);