angular2 等待错误 http 响应

angular2 wait for error http response

我对 angular2 http 响应有问题。

我想捕获组件中的错误。

我的应用程序如何工作。 在我的组件中,我在个人服务中调用了一个函数:

var response = this.apiUser.login(username, password);
alert(response);

在我的服务中,我尝试授权:

this.http.post(this.httpApiAdress + '/' + this.httpUserAutenticate, body, { headers: contentHeaders })
            .subscribe(
                response => {
                    localStorage.setItem('id_token', response.json().token);
                    this.router.navigate(['home']);
                },
                error => {
                    return error.json();
                },
                () => { }
            );

当身份验证正常时,一切正常。但是当 Auth 失败时,我无法在我的组件中捕获响应。 (未定义,因为警报在 http 调用之前执行...)

你能帮帮我吗!!! (当所有代码都在我的组件中时它是有效的,但我想滑动我的代码...)

Ty.

Return 使用 map() 而不是 subscribe()

的可观察值
return this.http.post(this.httpApiAdress + '/' + this.httpUserAutenticate, body, { headers: contentHeaders })
.map(
    response => {
        localStorage.setItem('id_token', response.json().token);
        this.router.navigate(['home']);
    },
);

然后在您想要在响应或错误到达时执行代码的地方使用订阅

    var response = this.apiUser.login(username, password)
    .subscribe(
        response => alert(response), 
        error => alert(error),
    );