В вашем примере улов будет вызван, если произошла ошибка.Кроме того, оператор map
не имеет второго аргумента, поэтому функция никогда не будет вызываться.Если у вас есть обработчик ошибок в подписке, обратный вызов будет вызван, если произойдет необработанное исключение.Оператор catchError
- это способ обработки ошибок.В основном он действует как switchMap
для переключения на новый наблюдаемый поток.
Примеры:
Подписаться на обработчик ошибок ( Demo )
return throwError('This is an error!').subscribe(data => {
console.log("Got Data: ", data);
}, error => {
console.error('error', error); // Observable stream has error so this prints
});
Перехват ошибок ( Демо )
return throwError('This is an error!').pipe(
catchError(error => {
console.log("Error Caught", error);
return of(2); // Catches the error and continues the stream with a value of 2
}),
).subscribe(data => {
console.log("Got Data: ", data); // Data will be logged
}, error => {
console.error('error', error); // Will not be called
});
Перехват ошибок и повторный бросок ( Демо )
return throwError('This is an error!').pipe(
catchError(error => {
console.log("Error Caught", error);
return throwError(error); // Catches the error and re-throws
}),
).subscribe(data => {
console.log("Got Data: ", data);
}, error => {
console.error('error', error); // Observable stream has error so this prints
});