我的Angular 2应用程序在服务中有2个方法[GetCategories()和GetCartItems()],这两个方法都返回
观测.
观测.
ngOnInit() { this.appService.GetCategories().subscribe( (data) => { this.appService.categories = data; this.appService.GetCartItems().subscribe( { next: (data) => { this.appService.cart = data},error: (err) => { this.toaster.error('cart==>' + err)} }) }); }
基本上从GetCategories()的订阅中调用GetCartItems,我觉得这不是正确的方法,这是一种回调地狱.
任何想法如何以更好的方式实现这一点(比如在promises中链接“then”)?
看起来GetCartItems不依赖于GetCategories.然后你可以使用
zip:
Observable .zip( this.appService.GetCategories() this.appService.GetCartItems() ) .catch(err => this.toaster.error(err)) .subscribe(([categories,cartItems]) => { this.appService.categories = categories; this.appService.cart = cartItems; });