假设我有3个服务在app.component中调用,每个服务在自己的服务中订阅(),那么我怎样才能逐个获得响应。
app.component.ts
ngOnInit() {
this._salesstageService.refreshSalesstage();
this._opportunityMailsService.RefreshTop50();
this._opportunityService.getOpportunities();
}
例如,我有三个service.ts文件,但在这里你可以看到一个服务函数来调用api。
app.service.ts
getOpportunities() {
return this.http.get(this._opportunitiesUrl)
.do(res => this._errorService.checkResponse(res))
.map(res => <Opportunity[]>JSON.parse(res.text(),
this.opportunityReviver))
.catch(err => this._errorService.handleError<Opportunity[]>(err))
.subscribe(
opportunities => {
if(opportunities instanceof Array){
this._opportunities = opportunities;
this.opportunities$.next(this._opportunities);
}
})
}
由于您的服务似乎发布了observable,因此以嵌套方式订阅它们。
this._salesstageService.salesstage$.subscribe(() => {
this._opportunityMailsService.RefreshTop50();
this._opportunityMailsService.mail$.subscribe(() => this._opportunityService.getOpportunities());
});
this._salesstageService.refreshSalesstage();