Quiero lanzar un error del operador de mapa de mi observable basado en una condición. Por ejemplo, si no se reciben los datos de API correctos. Consulte el siguiente código:
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.") );
}
Básicamente, como puede ver en el código, si la respuesta (objeto res) no tiene 'bearerToken', quiero arrojar un error. De modo que en mi suscripción entra en el segundo parámetro (handleError) mencionado a continuación.
.subscribe(success, handleError)
¿Alguna sugerencia?
throw 'Valid token not returned';
?