Tôi có một http
thể quan sát được như vậy, trong UserService
tôi:angular2 - Navigate sau khi quan sát được hoàn tất
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;
});
}
Tôi đã tạo ra một thể quan sát được, và tạo ra một thuê bao (response
) mà là giá trị thành công trở lại.
Bây giờ, trong thành phần của tôi, tôi muốn gọi UserService.logout()
và sau đó điều hướng đến một con đường mới:
logout() {
this.userService.logout();
this.router.navigate(['LandingPage']);
}
Rõ ràng, điều này có thể xảy ra không đồng bộ và tôi có thể kết thúc điều hướng trước khi tôi đăng xuất.
Sử dụng những lời hứa, tôi có thể làm một cái gì đó như thế này:
this.userService.logout().then(() => { this.router.navigate(['LandingPage']); });
Làm thế nào tôi có thể làm điều tương tự với quan sát? Trong lớp UserService
của tôi, tôi muốn tạo ra một quan sát, đăng ký với nó, làm một số thứ về thành công hoặc lỗi, THEN điều hướng từ thành phần khung nhìn của tôi.
dụ Rất hữu ích. Cảm ơn :-) – brinch