To recap: map is for mapping ‘normal’ values to whatever format you need it to be. The return value will be wrapped in an Observable again, so you can keep using it in your data stream.
Use mergeMap if you simply want to flatten the data into one Observable,
use switchMap if you need to flatten the data into one Observable but only need the latest value and
use concatMap if you need to flatten the data into one Observable and the order is important to you.
To recap: map is for mapping ‘normal’ values to whatever format you need it to be. The return value will be wrapped in an Observable again, so you can keep using it in your data stream.
Use mergeMap if you simply want to flatten the data into one Observable,
use switchMap if you need to flatten the data into one Observable but only need the latest value and
use concatMap if you need to flatten the data into one Observable and the order is important to you.