RxJS - 錯誤處理運算子 catchError
該運算子透過返回一個新可觀察物件或一個錯誤來處理源可觀察物件的錯誤。
語法
catchError(selector_func: (err_func: any, caught: Observable) => O):Observable
引數
selector_funct − 選擇器函式取兩個引數,分別是錯誤函式和可觀察物件 caught。
返回的值
它返回一個基於 selector_func 傳出的值的可觀察物件。
示例
import { of } from 'rxjs';
import { map, filter, catchError } from 'rxjs/operators';
let all_nums = of(1, 6, 5, 10, 9, 20, 40);
let final_val = all_nums.pipe(
map(el => {
if (el === 10) {
throw new Error("Testing catchError.");
}
return el;
}),
catchError(err => {
console.error(err.message);
return of("From catchError");
})
);
final_val.subscribe(
x => console.log(x),
err => console.error(err),
() => console.log("Task Complete")
);
輸出
廣告