Je veux lancer une erreur de l' opérateur cartographique de mon observable en fonction d'une condition. Par exemple, si les données API correctes ne sont pas reçues. Veuillez consulter le code suivant:
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.") );
}
Fondamentalement, comme vous pouvez le voir dans le code, si la réponse (objet res) n'a pas 'bearerToken', je veux jeter une erreur. Ainsi, dans mon abonnement, il entre dans le 2ème paramètre (handleError) mentionné ci-dessous.
.subscribe(success, handleError)
Aucune suggestion?
throw 'Valid token not returned';
?