У меня есть http
наблюдаемый, как это так, в моем UserService
:angular2 - Navigate после наблюдаемым завершения
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;
});
}
Я создал наблюдаемое, и создал подписку (response
), которая возвращается значение успеха.
Теперь в моем компоненте, я хочу назвать UserService.logout()
и затем перейдите к новому маршруту:
logout() {
this.userService.logout();
this.router.navigate(['LandingPage']);
}
Очевидно, что это может произойти асинхронно, и я могу закончить навигации, прежде чем я выйти из системы.
Используя обещания, я мог бы сделать что-то вроде этого:
this.userService.logout().then(() => { this.router.navigate(['LandingPage']); });
Как я могу сделать то же самое с наблюдаемыми? В моем классе UserService
я хочу создать наблюдаемый, подписаться на него, сделать некоторые вещи с успехом или с ошибкой, ТОГДА перейти от моего компонента представления.
Очень полезным примером. Спасибо :-) – brinch