用Angular2 http捕获api 404响应

Bas*_*sit 8 http response http-status-code-404 angular

如果失败,我有api返回400或404错误.

当我运行http.get方法时,它不会捕获订阅错误并抛出错误.

Http.get(`api/path/here`).map(res => res.json()).subscribe(
            data => console.log(data),
            error => console.log(error)
        );
Run Code Online (Sandbox Code Playgroud)

以下是我得到的错误

在此输入图像描述

Thi*_*ier 11

您也可以使用catch运算符

http.get(`api/path/here`)
    .map(res => res.json())
    .catch(
        err => {
          // handle errors
        })
    .subscribe(
        data => console.log(data)
    );
Run Code Online (Sandbox Code Playgroud)

  • 与在订阅操作符本身上使用“onError”方法相比,“catch”有什么好处吗?如果我只是包含一个“onError”方法实现,是否有可能出现由“map”运算符引起的未捕获异常?谢谢! (2认同)

mic*_*yks 8

.subscribe(res=>{
    this.data=res;
    console.log('bye');
 },
 (err)=>console.log(err),
 ()=>console.log("Done")
 );
Run Code Online (Sandbox Code Playgroud)

试试这种方式.