如何合并两个响应并将其返回给诺言?

时间:2018-08-20 15:35:38

标签: javascript arrays typescript async-await

我正在打两个电话,我看到firstCallData可以很好地打印数据,但是当我做+=合并响应时,它向我返回了下面的Response,这是添加到问题中的更好的方法? ?

main.ts

let data = await this.processResponse(__data.Details[0]);

    console.log("firstCallData" , data);

    data += await this.orderResponse(__data.Details[1]);

    console.log("DATA", data);
    return Promise.resolve(data);

响应:

[object Object][object Object]

1 个答案:

答案 0 :(得分:0)

我会使用Object.assign()MDN link)。

  

Object.assign()方法用于将所有可枚举的自身属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。

一个例子:

let data1 = await this.processResponse(__data.Details[0]); //let's say this promise returns {foo: 4, bar: 49}

console.log("firstCallData" , data1);

let data2 = await this.orderResponse(__data.Details[1]); //and this one returns {baz: 69, bar: 42}

data = Object.assign(data2, data1);

console.log("DATA", data);
return Promise.resolve(data);

它将“合并”对象并返回:

{foo: 4, bar: 49, baz: 69}

请注意,对于重叠属性,它将选择data1,即源对象而不是目标对象(data2)。