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.