#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
и да, я бы использовал наблюдаемые объекты, но это очень самоуверенно.