我想根据条件从我的可观察的地图运算符中引发错误。例如,如果未收到正确的API数据。请参见以下代码:
private userAuthenticate( email: string, password: string ) {
return this.httpPost(`${this.baseApiUrl}/auth?format=json&provider=login`, {userName: email, password: password})
.map( res => {
if ( res.bearerToken ) {
return this.saveJwt(res.bearerToken);
} else {
// THIS DOESN'T THROW ERROR --------------------
return Observable.throw('Valid token not returned');
}
})
.catch( err => Observable.throw(this.logError(err) )
.finally( () => console.log("Authentication done.") );
}
基本上就像您在代码中看到的那样,如果响应(res对象)不具有“ bearerToken”,我想抛出一个错误。因此,在我的订阅中,它进入了下面提到的第二个参数(handleError)。
.subscribe(success, handleError)
有什么建议么?
throw 'Valid token not returned';
呢