Ich habe den folgenden Code in canActivate
Methode des AuthGuard:Re-Wurf-Fehler von Observable.catch in AuthGuard canActivate
return this.http.get(url)
.map(res => {
console.log(res.json());
return true;
})
.catch(error => {
return Observable.throw(error);
// return Observable.of(false);
});
Wenn ich die Observable.of(false)
Linie Kommentar-, alles ist gut. Allerdings möchte ich nicht nur falsch in einem Observable eingewickelt zurückgeben, ich möchte auch den Fehler erneut werfen, so dass meine globale benutzerdefinierte ErrorHandler
es fangen und eine benutzerfreundliche Nachricht anzeigen würde.
No tun können. 'CanActivate' hat eine Schnittstelle von' Observable | Versprechen | Boolean 'Alles andere ist ein Kompilierungsfehler, und zwar deshalb, weil der Code, der die Methode" konsumiert ", nur einen logischen Wert erwartet. –
Was Sie "tun" können, ist in einen anderen Dienst verdrahten und Logik enthalten, um den Fehler dort zu senden. Dann können Sie diesen Fehler entweder innerhalb der Servicelogik behandeln oder in ähnlicher Weise eine Observable für etwas ausgeben, das konsumiert und auf die Daten reagiert. –
Sorry, ich bin mir nicht sicher, ob ich folge. Wäre das auch in der "Fang" -Funktion? – Sammy