Побочные эффекты только при использовании Pipeable Operators?
Я переписываю часть своего кода, чтобы использовать Pipeable Operators вместо операторов "patch", и меня немного смущает вопрос, когда использовать pipe()
и как мне подписаться на пайп Observable
"активировать" его, если я хочу только побочные эффекты?
Например, у меня есть этот код:
this.messages$ = this.messageService.getMessages(messageType)
.do((messages: Message[]) => {
console.log('The first message is ' + deviceMessages[0].text);
});
Я запутался здесь, потому что я думаю, что я хочу сделать this.messageService.getMessages(messageType).pipe(...)
так что я получаю Observable
вернулся и назначен this.messages$
но тогда это не будет выполнено, потому что я не subscribe()
"D. Но если я сделаю .pipe(...).subscribe()
тогда он вернет Subscription
объект, который не то, что я хочу.
Что мне здесь делать?
1 ответ
Решение
Ну, сделайте это просто так:
this.messages$ = this.messageService.getMessages(messageType).pipe(
tap((messages: Message[]) => {
console.log('The first message is ' + deviceMessages[0].text);
})
);
this.messages$.subscribe();
оператор крана является эквивалентом .do()
в rxjs 5 и выше.