如何将多个HTTP调用合并到Angular中的一个实体模型

如何将多个HTTP调用合并到Angular中的一个实体模型,angular,charts,chart.js,Angular,Charts,Chart.js,我有这样一个场景: 此界面表示轴值 export interface ChartModel { HorizontalElement: number, VerticalElement: number } 我可以在一个图中有多个图表,所以我使用这个模型 import { ChartModel } from "./ChartModel"; export interface ResponseModel { PrimaryChart: ChartModel[]; Pre

我有这样一个场景:

此界面表示轴值

export interface ChartModel {
    HorizontalElement: number,
    VerticalElement: number
}
我可以在一个图中有多个图表,所以我使用这个模型

import { ChartModel } from "./ChartModel";

export interface ResponseModel {
    PrimaryChart: ChartModel[];
    PreviousQuarterChart1: ChartModel[];
    PreviousQuarterChart2: ChartModel[];
    PreviousQuarterChart3: ChartModel[];
}
现在我有两个API服务返回数据。其中一个我得打三次电话。如何将所有调用合并到一个服务方法中,而该方法只返回一个ResponseModel类型的结果

对于每个服务调用,我有3个类似的元素,这就是我所说的ChartModel:

[
    {
        "HorizontalElement": 0,
        "VerticalElement": 150
    },
    {
        "HorizontalElement": 1,
        "VerticalElement": 236
    },
    {
        "HorizontalElement": 2,
        "VerticalElement": 330
    }
]
我想做的是将3个响应连接到一个名为ResponseModel的对象中。 大概是这样的:

[
[{"HorizontalElement":0,"VerticalElement":150},{"HorizontalElement":1,"VerticalElement":236},{"HorizontalElement":2,"VerticalElement":330}],
[{"HorizontalElement":0,"VerticalElement":150},{"HorizontalElement":1,"VerticalElement":236},{"HorizontalElement":2,"VerticalElement":330}],
[{"HorizontalElement":0,"VerticalElement":150},{"HorizontalElement":1,"VerticalElement":236},{"HorizontalElement":2,"VerticalElement":330}]
]

我认为您正在寻找Observable.forkJoin方法 () 当您有一组可观察对象并且只关心每个对象的最终发射值时,最好使用此运算符


如果你需要一个例子,请告诉我

是的,我用过它,但我不知道如何只检索一个ResponseModel类型的结果,每个服务api返回ChartModel,当与fork合并时,它返回ChartModel[](数组)。@Juanma编辑你的问题,发布你的代码,你希望它做什么,以及它做什么。你应该从一开始就这样做。你说你必须创建3个请求。以及每个请求返回模型。但是你能解释一下数据是否与ResponseModel的每个字段相似吗?我已经编辑了我的问题,我需要将服务的所有响应合并到一个对象,并将其返回到视图很高兴听到你找到了解决方案!因此,您有一个包含3个ChartModel数组的数组。您只需要
返回{PrimaryChart:array[0],PreviousQuarterChart1:array[1],…}
。当然,我们不知道如何从一个只有3个数组的数组中得到4个数组。