Operadores RxJS que você deve conhecer

Quero compartilhar dois operadores RxJS que tenho utilizado com maior frequência, são eles, concat e forkJoin.

Concat

Utilize o operador concat quando a ordem for importante, por exemplo, quando você precisa enviar requisições http que o resultado deve ser exibido em ordem, isto quer dizer que, o segundo Observable irá ser executado, apenas depois que o primeiro for resolvido ou terminado sua execução.

O formato do retorno é sequencial.

O contra ponto fica por conta do bloqueio, como você já deve ter deduzido, pois o segundo Observable irá começar a executar apenas depois do primeiro.

forkJoin

forkJoin é o Promise.all() do Rx.

Utilize este operador quando precisar executar vários Observables em paralelo. Irá retornar quando todos retornarem. Caso o segundo Observable retorne primeiro, ele só será exibido quando o primeiro retornar.

O contra ponto fica por conta do bloqueio, como você já deve ter deduzido, caso o segundo Observable retorne primeiro com os dados, ele ficará bloqueado.

Neste caso, do forkJoin, o retorno é um objeto com o retorno dos dois Observables.

Utilizar o ambos operadores podem ser interessante também para você fechar (unsubscribe) apenas um Observable, no caso do concat ao invés de executar unsubscribe para os Observables das linhas 2 e 3, teremos de realizar esta operação apenas para o Observable retornado pelo concat.

Recomendação de leitura

Build Reactive WebSites with RxJS

Build Reactive WebSites with RxJS