如何使用点差合并对数组的响应?

时间:2018-08-29 18:51:08

标签: javascript arrays typescript

我对两个诺言都有回应,但是当我combineResponse仅解决对ptmResponse诺言的回应时,以下代码中使用传播实现的错误是什么?响应即将来临,我想将其推送到数组。

  

main.ts

try {
  const __data: IResponse = await makeRequest(this._request);
  const specResponse = await this.specResponse(__data.Details[0]);
  const ptmResponse = await this.ptmAccountBalanceResponse(__data.Details[1]);
  const combineResponse = {
    ...specResponse,
    ...ptmResponse
  };
  return Promise.resolve(combineResponse);
} catch (err) {
  return Promise.reject(err);
}

2 个答案:

答案 0 :(得分:2)

您可能会想太多。我假设您想要一个包含两个对象的数组。如果是这样,那就是:

const combineResponse = [ specResponse, ptmResponse ]

不需要传播。

答案 1 :(得分:0)

我还将与Promise.all并行执行这些承诺,并将两个响应都作为数组存储在combineResponse中:

const combineResponse = await Promise.all([this.specResponse(__data.Details[0]), this.ptmAccountBalanceResponse(__data.Details[1])]);