【发布时间】:2016-05-22 22:13:52
【问题描述】:
我有一个像这样的http observable,在我的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;
});
}
我创建了一个 observable,并创建了一个订阅 (response),这是返回的成功值。
现在,在我的组件中,我想调用 UserService.logout() 然后导航到新路线:
logout() {
this.userService.logout();
this.router.navigate(['LandingPage']);
}
显然,这可能是异步发生的,我可能最终会在我注销之前导航。
使用承诺,我可以做这样的事情:
this.userService.logout().then(() => {
this.router.navigate(['LandingPage']);
});
我怎样才能对 observables 做同样的事情?在我的UserService 类中,我想创建一个可观察对象,订阅它,在成功或错误时做一些事情,然后从我的视图组件中导航。
【问题讨论】:
标签: angular observable