Sobes.tech
Middle

Quando é que se utiliza o operador switchMap e concatMap na programação com RxJS?

sobes.tech IA

Resposta da IA

  • switchMap: Utilizado quando nos interessa apenas o resultado da última solicitação (Observable), e queremos cancelar as anteriores se ainda não tiverem sido concluídas. Aplica-se, por exemplo, em buscas em tempo real, onde a solicitação de preenchimento automático deve ser cancelada se o usuário inserir um novo caractere antes de receber a resposta anterior.
  • concatMap: Utilizado quando precisamos executar solicitações (Observables) sequencialmente, uma após a outra, e aguardar a conclusão de cada uma antes de iniciar a próxima. A ordem de execução é garantida. Aplica-se, por exemplo, para realizar uma série de operações dependentes ou para carregar dados que devem ser processados em uma ordem estrita.
// Exemplo de uso do switchMap
source$.pipe(
  switchMap(searchTerm => apiService.search(searchTerm)) // Cancela solicitações de pesquisa anteriores
).subscribe(results => console.log(results));

// Exemplo de uso do concatMap
source$.pipe(
  concatMap(itemId => apiService.getItem(itemId)) // Processa os elementos um por um, aguardando a conclusão da solicitação
).subscribe(item => console.log(item));