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