Middle
Kedy sa používajú operátory switchMap a concatMap pri programovaní s RxJS?
sobes.tech AI
Odpoveď od AI
- switchMap: Sa používa, keď nás zaujíma iba výsledok poslednej požiadavky (Observable) a chceme zrušiť tie predchádzajúce, ak ešte neboli dokončené. Napríklad pri vyhľadávaní v reálnom čase, keď požiadavka na automatické dopĺňanie by mala byť zrušená, ak používateľ zadá nový znak skôr, než dostane odpoveď na predchádzajúci.
- concatMap: Používa sa, keď je potrebné vykonať požiadavky (Observables) sekvenčne, jeden po druhom, a počkať na dokončenie každej pred začatím ďalšej. Poradie vykonávania je garantované. Napríklad na vykonanie série závislých operácií alebo na načítanie dát, ktoré musia byť spracované v prísnom poradí.
// Príklad použitia switchMap
source$.pipe(
switchMap(searchTerm => apiService.search(searchTerm)) // Zruší predchádzajúce požiadavky na vyhľadávanie
).subscribe(results => console.log(results));
// Príklad použitia concatMap
source$.pipe(
concatMap(itemId => apiService.getItem(itemId)) // Spracováva prvky jeden po druhom, čaká na dokončenie požiadavky
).subscribe(item => console.log(item));