如何使用可观察对象捕获 API 响应错误?

How do I catch an API response error with observables?

我正在使用 Angular 4 进行 API 调用,成功响应 returns 正确 json,但响应错误 returns 404 HTML 页面而不是 json 响应(我知道这是错误的,但我无法控制它)。

我如何才能捕捉到错误,使其不会停止其他脚本 运行,并且不会显示在控制台中?

我的 API 电话是:

this.jsonp.get(url, options)
            .map((response) => response.json())
            .map((results) => results.map((result: string) => result))
.catch((err:any) =>{ 
    console.log("error");
    return Observable.of(undefined);
 });

您可以创建一个函数并在 catch()

中使用它
errorHandler(error: Response){
        console.error(error);
        return Observable.throw(error || "Server error");
}

喜欢 .catch(this.errorHandler);