In this tutorial, you will learn about switchMap, mergeMap, and concatMap Operators.
switchMap, mergeMap, and concatMap are RxJS Operators.
switchMap Operator
switchMap Operator cancels the previous inner Observable and subscribes only to the latest one.
Note: switchMap Operator prevents outdated API responses.
Example:
this.searchControl.valueChanges.pipe(
switchMap(value =>
this.http.get(`/api/search?q=${value}`)
)
);
Where to use switchMap Operator
You can use the switchMap Operator in many scenarios.
1. You can use on Search autocomplete.
2. You can use, when you need Live filtering.
3. You can use, when you need the Latest-only requests.
mergeMap Operator
mergeMap Operator executes all inner Observables in parallel, and it does not cancel previous requests.
Example:
from([1, 2, 3]).pipe(
mergeMap(id =>
this.http.get(`/api/user/${id}`)
)
);
Where to use the mergeMap Operator
1. If you want parallel API calls.
2. If you want to upload multiple files and many more.
concatMap Operator
concatMap Operator executes inner Observables one at a time and waits for the previous to complete.
Example:
from([1, 2, 3]).pipe(
concatMap(id =>
this.http.get(`/api/order/${id}`)
)
);
Where to use the concatMap Operator
1. If you want Sequential API calls.
2. If your program depends on previous operations.
3. If you want Queue-based processing.
switchMap vs mergeMap vs concatMap Comparison
| Feature | switchMap | mergeMap | concatMap |
|---|---|---|---|
| Execution | Latest only | Parallel | Sequential |
| Cancels Previous | ✔ Yes | ❌ No | ❌ No |
| Order Preserved | ❌ No | ❌ No | ✔ Yes |
| Performance | Optimized | High but risky | Safe but slower |
| Best For | Search, live input | Parallel tasks | Sequential tasks |
Interview Questions & Answers
Q 1: Which operator should be used for search?
Ans: switchMap Operator
Q 2: Which operator runs tasks in parallel?
Ans: mergeMap Operator
Q 3: Which operator runs tasks sequentially?
Ans: concatMap Operator
RxJS switchMap vs mergeMap vs concatMap – Interview Questions
Q 1: What is switchMap?
Ans: switchMap cancels previous observable subscriptions when a new value is emitted.
Q 2: What is mergeMap?
Ans: mergeMap runs multiple observable subscriptions simultaneously.
Q 3: What is concatMap?
Ans: concatMap processes observable emissions sequentially, waiting for the previous one to complete.
Q 4: When should switchMap be used?
Ans: It is ideal for API search requests where only the latest response is required.
Q 5: Which operator ensures order of execution?
Ans: concatMap ensures sequential execution.