Я хочу выбросить ошибку из моего наблюдаемого оператора карты, основываясь на условии. Например, если правильные данные 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 object) не имеет "bearerToken", я хочу выбросить ошибку. Так что в моей подписке он переходит во второй параметр (handleError), упомянутый ниже.
.subscribe(success, handleError)
Какие-либо предложения?