У меня есть метод execute, который создает запросы и вызывает каждый из этих URL-адресов для получения ответов и объединяет их, используя promise.all
, проблема с приведенным ниже кодом заключается в дублировании обоих ответов и добавлении его дважды в combineResponses
, может кто-нибудь помочьвот что пошло не так или лучший подход к решению объединить ответы с обещанием. все?
main.ts
export class GetAccountBalanceController extends Controller {
private _request: IRequestURL[] = [];
constructor() {
super();
}
private async execute(@Request() request: ExpressRequest): Promise < any > {
const combinedResponses: IResponse[] = [];
if (request.body.includeSpecialty === true) {
const bRetSpecialty = await this.specialtyBalanceRequest(request);
this._request.push(bRetSpecialty);
try {
const specialtyResponse: IResponse = await makeRequest(this._request);
combinedResponses.push(specialtyResponse);
} catch (err) {
return Promise.reject(err);
}
}
if (request.body.getAccountBalanceRequest) {
const bRetPBM = await this.pmbBalanceRequest(request);
this._request.push(bRetPBM);
try {
const pbmResponse: IResponse = await makeRequest(this._request);
combinedResponses.push(pbmResponse);
} catch (err) {
return Promise.reject(err);
}
}
return await Promise.all(combinedResponses);
}
}
во время работы другая мысль была
private async execute(@Request() request: ExpressRequest): Promise<any> {
const combinedResponses: IResponse[] = [];
if (request.body.includeSpecialty === true) {
const bRetSpecialty = await this.specialtyBalanceRequest(request);
this._request.push(bRetSpecialty);
}
if (request.body.getAccountBalanceRequest) {
const bRetPBM = await this.pmbBalanceRequest(request);
this._request.push(bRetPBM);
}
try {
const _data: IResponse = await makeRequest(this._request);
combinedResponses.push(_data);
} catch (err) {
return Promise.reject(err);
}
return await Promise.all(combinedResponses);
}