Ho un http
osservabile in questo modo, a mio UserService
:angular2 - Naviga dopo osservabile è completa
logout() {
return this.http.delete(this.baseUrl + url, {
headers: this.headers()
}).map((res: IResponse) => {
var json = res.json();
json.headers = res.headers;
return json;
}).subscribe((response) => {
//DO SOMETHING, THEN ----
return res;
});
}
ho creato un osservabile, e ha creato un abbonamento (response
) che è il successo valore restituito.
Ora, nella mia componente, voglio chiamare UserService.logout()
e quindi passare ad un nuovo percorso:
logout() {
this.userService.logout();
this.router.navigate(['LandingPage']);
}
Ovviamente, questo potrebbe accadere in modo asincrono e può finire per la navigazione prima di logout.
Utilizzando promesse, avrei potuto fare qualcosa di simile:
this.userService.logout().then(() => { this.router.navigate(['LandingPage']); });
Come posso fare la stessa cosa con osservabili? Nella mia classe UserService
voglio creare un osservabile, iscriversi ad esso, fare alcune cose in caso di successo o errore, POI navigare dal mio componente di visualizzazione.
esempio molto utile. Grazie :-) – brinch