Побочные эффекты только при использовании Pipeable Operators? - PullRequest
0 голосов
/ 26 июня 2018

Я переписываю часть своего кода, чтобы использовать 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 Ответ

0 голосов
/ 26 июня 2018

Ну, сделайте это просто так:

this.messages$ = this.messageService.getMessages(messageType).pipe(
  tap((messages: Message[]) => {
    console.log('The first message is ' + deviceMessages[0].text);
  })
);
this.messages$.subscribe();

оператор tap является эквивалентом .do() в rxjs 5 и выше.

...