[英]combine results of two http.get calls using rxjs
我调用了两个不同的 api(两个不同的在线商店),每个都返回相似的数据。 两者都有一些分页信息以及嵌套的项目数组(订单列表)。 我需要组合这些对象以按购买日期的顺序显示完整的项目列表。 我还需要弄清楚如何维护分页数据,因为列表太大而无法完全拉入,所以我必须从两个调用中获取更多数据以填充后续页面。
我正在使用 angular 和 rxjs。 对象如下所示:
回应一:
```{
"startIx": 0,
"page": 1,
"orders":[
{"orderNumber":"756984",
"date":"2020-04-02",
"status":"ORDER_PARTIALLY_PROCESSED",
"price":7.84,
"links":[
{"rel":"store.order",
"href":"history.jsf"
}]},
{"orderNumber":"756985",
"date":"2020-04-03",
"status":"ORDER_PARTIALLY_PROCESSED",
"price":8.54,
"links":[
{"rel":"store.order",
"href":"history.jsf"
}]}],
"totalOrders":2
}```
回应二:
```{
"startIx": 0,
"page": 1,
"orders":[
{"orderNumber":"756984",
"date":"2020-04-02",
"status":"ORDER_PARTIALLY_PROCESSED",
"price":7.84,
"links":[
{"rel":"store.order",
"href":"history.jsf"
}]},
{"orderNumber":"756985",
"date":"2020-04-03",
"status":"ORDER_PARTIALLY_PROCESSED",
"price":8.54,
"links":[
{"rel":"store.order",
"href":"history.jsf"
}]}],
"totalOrders":2
}```
期望的结果是这样的,将来自响应 2 的所有订单添加到其中并更新总数。
```{
"startIx": 0,
"page": 1,
"orders":[
{"orderNumber":"756984",
"date":"2020-04-02",
"status":"ORDER_PARTIALLY_PROCESSED",
"price":7.84,
"links":[
{"rel":"store.order",
"href":"history.jsf"
}]},
{"orderNumber":"756985",
"date":"2020-04-03",
"status":"ORDER_PARTIALLY_PROCESSED",
"price":8.54,
"links":[
{"rel":"store.order",
"href":"history.jsf"
}]},
{"orderNumber":"756984",
"date":"2020-04-02",
"status":"ORDER_PARTIALLY_PROCESSED",
"price":7.84,
"links":[
{"rel":"store.order",
"href":"history.jsf"
}]},
{"orderNumber":"756985",
"date":"2020-04-03",
"status":"ORDER_PARTIALLY_PROCESSED",
"price":8.54,
"links":[
{"rel":"store.order",
"href":"history.jsf"
}]}],
"totalOrders":4
}```
我对 angular 尤其是 rxjs 和 ngrx 非常陌生,所以我正在寻找一些关于合并列表的最佳方法的建议。
组合这些对象来显示
1. forkJoin([api1, api2]).subscribe(response => { // response[0] is api1(response) // response[1] is api2(response) // 2. combine both response data to display });
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.