У меня есть некоторые проблемы, чтобы понять это. Когда я использую оператор switchMap с Observable, он выдает все значения, как и ожидалось:
Observable.from([1, 2, 3, 4, 5])
.do(console.log)
.switchMap(i => Observable.of('*' + i))
.do(console.log)
.subscribe();
Полученные результаты:
1
*1
2
*2
3
*3
4
*4
5
*5
Но когда я заменяю Observable обещанием, я получаю другое поведение:
Observable.from([1, 2, 3, 4, 5])
.do(console.log)
.switchMap(i => new Promise((resolve) => resolve('*' + i)))
.do(console.log)
.subscribe();
Полученные результаты:
1
2
3
4
5
*5