Sobes.tech
Middle

Kdy se v programování s RxJS používají operátory switchMap a concatMap?

sobes.tech AI

Odpověď od AI

  • switchMap: Používá se, když nás zajímá pouze výsledek poslední žádosti (Observable) a chceme zrušit předchozí, pokud ještě neskončily. Například při hledání v reálném čase, kdy má být žádost o automatické doplňování zrušena, pokud uživatel zadá nový znak dříve, než obdrží odpověď na předchozí.
  • concatMap: Používá se, když je třeba provést požadavky (Observables) sekvenčně, jeden po druhém, a počkat na dokončení každého před začátkem dalšího. Pořadí provádění je garantováno. Například pro provedení série závislých operací nebo načítání dat, která musí být zpracována v přísném pořadí.
// Příklad použití switchMap
source$.pipe(
  switchMap(searchTerm => apiService.search(searchTerm)) // Zruší předchozí vyhledávací požadavky
).subscribe(results => console.log(results));

// Příklad použití concatMap
source$.pipe(
  concatMap(itemId => apiService.getItem(itemId)) // Zpracovává prvky jeden po druhém, čeká na dokončení požadavku
).subscribe(item => console.log(item));