A
ANGULAR
Explain the difference between `switchMap`, `mergeMap`, `concatMap`, and `exhaustMap` in RxJS.
`switchMap` cancels previous inner observables when a new outer value arrives (best for search auto-complete). `mergeMap` runs all inner observables concurrently without cancellation (parallel requests). `concatMap` queues inner observables, executing them sequentially one after another (order-dependent saves). `exhaustMap` ignores new outer values until the active inner observable completes (login/submit buttons preventing duplicate submissions).
◦ rxjs
