Есть ли лучший способ для меня выполнять несколько HTTP-запросов последовательно? (Угол 12)

#angular #angular-httpclient #rxjs-observables

Вопрос:

Вот код для того, что я сейчас делаю:

 // Observables (subscribed to in HTML using async pipe). public dyePenetrantTypes: Observablelt;CodeType[]gt;; public procedures: Observablelt;CodeType[]gt;; public materials: Observablelt;CodeType[]gt;; public acceptanceCriteria: Observablelt;CodeType[]gt;;  

Вот где я устанавливаю свои наблюдаемые объекты (используя await непосредственно при вызовах API).

 // Setting observable data from http requests  async setObservablesData() {  this.dyePenetrantTypes = await this.apiLiquidPenetrant.getDyePenetrantTypes();  this.procedures = await this.apiLiquidPenetrant.getProcedures();  this.materials = await this.apiLiquidPenetrant.getMaterials();  this.acceptanceCriteria = await this.apiLiquidPenetrant.getAcceptanceCriteria();  }  

Вот как в основном выглядят все мои вызовы API:

 async getDyePenetrantTypes(): Promiselt;Observablelt;CodeType[]gt;gt; {  let params = new HttpParams();  params = params.append('codeType', 'LiquidPenetrantDyePenetrantType');  params = params.append('includeInactive', 'false');   const httpComponents = await this.httpService.composeRequest(codesEndpoint, params);   return this.http.getlt;CodeType[]gt;(httpComponents.fullUrl, httpComponents.httpOptions); }  

Эта асинхронная функция setObservablesData() вызывается в моем крючке ngOnInit.

Этот метод отлично сработал для моего приложения, но мне интересно, не является ли это каким-то нарушением передовой практики. Я вижу некоторые другие методы, используемые для этого, такие как switchmap, concatmap и forkjoin, но я не уверен, что они мне нужны в этом случае.

Комментарии:

1. если вы хотите использовать наблюдаемые объекты, посмотрите forkJoin и да, я бы использовал наблюдаемые объекты, но это очень самоуверенно.