РЕДАКТИРОВАТЬ: описанная ошибка исчезла в версии 6.2.1
Я перенес проект с rxjs5 на rxjs6 с помощью (хорошо работающего (!)) Инструмента миграции в rxjs-tslintпакет.В некоторых случаях моя обработка ошибок, которая раньше работала нормально, больше не улавливала ошибку.
Есть ли что-то новое в области видимости и / или распространении ошибок при использовании switchMap?И как я могу поймать ошибку снова?
Вот рабочий пример
Rx.of(undefined).pipe(
tap(() => console.log("WORKING")),
mergeMap(boom => boom),
catchError(err => Rx.throwError("ERROR CATCHED"))
).subscribe((data) => {
console.log(data);
},(err) => {
console.log("ERROR:", err);
})
Вывод:
WORKING
ERROR: ERROR CATCHED
Не работает пример:
Rx.of("foo").pipe(
switchMap(() => Rx.of(undefined).pipe(
tap(() => console.log("NOT WORKING")),
mergeMap(boom => boom),
catchError(err => Rx.throwError("ERROR NOT CATCHED"))
))
).subscribe((data) => {
console.log(data);
},(err) => {
console.log("ERROR:", err);
})
Вывод:
NOT WORKING
ERROR: TypeError: You provided 'undefined' where a stream was expected.
You can provide an Observable, Promise, Array, or Iterable.