Stream.io Chat API - прекратить прослушивание событий канала в Stream - PullRequest
2 голосов
/ 07 апреля 2020

Меня смущает документация о том, как прекратить прослушивание событий канала в JS с помощью Stream Chat API. Согласно документам:

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

Что такое myChannelEventHandler?

My channel.on выглядит следующим образом, из примера Angular application:

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

Это единственный раз, когда myChannelEventHandler когда-либо упоминался в документах, любое руководство будет оценено ,

Ответы [ 2 ]

0 голосов
/ 07 апреля 2020

Я бы предложил рефакторинг кода, чтобы вы могли ссылаться на свою функцию внутри 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);
0 голосов
/ 07 апреля 2020

Благодаря Taplar , я получил это работает. Решение так же просто, как это:

Определите обработчик события сообщения и создайте свойство для класса компонента Angular:

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

Используйте обработчик события для включения канала:

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

Использовать тот же обработчик событий для отключения канала:

this.channel.off('message.new', this.messageEventHandler)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...