订阅可以处理所有http错误吗?

时间:2019-08-21 16:04:08

标签: angular http angular6

我已经阅读了有关处理错误的Angular文档,但是我想得到一些澄清。

我提出了几个http请求,然后订阅并通过subscription处理错误。我只是想知道这是否可以处理所有错误?

我这样做:

this._apiService.dataMeta(id).subscribe((information: any) => { //subscribe to the returned data
    if (information.data.length != 0) {
        //do something with information
    } else {
        this.UserData['Error1'] = user;
    }

},
    error => {
        if(error.status == '401 '|| error.status == '400'){
            this.router.navigate(['/results'])
            this._dataService.saveApiError();
        }
        else{
            this.UserData['Error1'] = user;
        }
    }

想法是我向API发出请求。当没有数据返回时,它给出了一个空的对象,这就是为什么我要检查长度。首先在error上检查这是400还是401错误,并采取相应措施。如果是的话,我可以导航到其他地方,如果不是的话,我想简单地将某些内容存储在数组中,然后再检查该数组。

我基本上只是想确保此设置可以处理从HTTP请求收到的所有错误?它可以很好地处理401和400,但是我没有一种方法可以测试所有其他可能的错误。

0 个答案:

没有答案