вызывать API поочередно в угловой с RXJS - PullRequest
0 голосов
/ 21 февраля 2019

предположим, у меня есть 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);
            }
        })
    } 

1 Ответ

0 голосов
/ 21 февраля 2019

Поскольку ваши службы, по-видимому, публикуют наблюдаемые, подпишитесь на них вложенным способом.

this._salesstageService.salesstage$.subscribe(() => {
  this._opportunityMailsService.RefreshTop50();
  this._opportunityMailsService.mail$.subscribe(() => this._opportunityService.getOpportunities());
});

this._salesstageService.refreshSalesstage();
...