What the map
When we want to use a flattening operator you usually come across switchMap but this is not the only map operator we have. We have a total of 4 maps to choose from:
mergeMap(orflatMapwhich is an alias)concatMapswitchMapexhaustMap
mergeMap/flatMap
This will concurrently handle each dispacthed request, this means it will not wait for any other request to complete and also doesn’t abort the previous one if a new request is fired. This might be a good choice if you don’t mind the order in which the requests complete.
concatMap
This is the same as using the mergeMap but then feeding it one request at a time. Process all requests but one request at a time. If you are unsure about which map to choose this is always a save pick.
switchMap
This will make sure only one request is going through and will cancel the previous observable and created a new one. If you are not concerned about the return value or completion this is the map for you!
exhaustMap
This is the opposite of switchMap, it will ignore the new request if there is already one pending. So it will wait for the first request to finish and will ignore any new ones.