Javascript—映射循环中多个http请求的数据(和按属性分组)

Javascript—映射循环中多个http请求的数据(和按属性分组),javascript,arrays,vue.js,Javascript,Arrays,Vue.js,我有一个简单的(我猜)映射,用于循环中包含多个HTTP请求的数组。在这种情况下,使用VUE和axios 在第一个请求中,我得到所有产品组,然后为每个分销商打另一个电话。我有6个产品组和32个分销商 axios.get('/product-groups').then((res) => { res.data.forEach(pg => { this.distributor.forEach(d => { axios.get('/distribu

我有一个简单的(我猜)映射,用于循环中包含多个HTTP请求的数组。在这种情况下,使用VUE和
axios

在第一个请求中,我得到所有产品组,然后为每个分销商打另一个电话。我有6个产品组和32个分销商

axios.get('/product-groups').then((res) => {
   res.data.forEach(pg => {
       this.distributor.forEach(d => {
          axios.get('/distributors/'+ d.id + '/product-data/' + pg.id).then((res) => {
              res.data.product_group = pg.name;
              this.pushToDataIn(res.data) //how this should look?
        });
    })
})
})

产品组是:

{
  id: 1,
  name: 'PG1'
}
结果(
res.data
)会出现多个对象,如:

{
 comments: "Something"
 distributor_id: 1
 last_year: 250938.74
 potential: 4549061.26
 product_group: "PG1"
 product_group_id: 107
}

现在,我想将此数据推送到一个基于
product\u group
连接或添加某些属性(在同一个产品组中)的数组中。

我不能100%确定您想要的最终结果,但至少要解析数据,您可以从以下内容开始。将数据映射到所需的格式应该不会太难

诀窍总是一样的:将数据映射到承诺列表,然后
等待承诺。所有(…)

//异步假冒产品组
//您的:axios.get(“/product groups”)
const getProductGroups=()=>新承诺(解析=>{
设置超时(解析,200[
{id:1,名称:'PG1'},
{id:2,名称:'PG2'},
{id:3,名称:'PG3'},
{id:4,名称:'PG4'},
]);
});
//异步假分发服务器数据
//axios.get('/distributors/'+d.id+'/productdata/'+pg.id)
const getDistributorData=(dId,pgId)=>新承诺(resolve=>{
设置超时(解析,200[{
评论:“某物”,
分销商id:Dod,
产品组标识:pgId,
}]);
});
(异步()=>{
//给分销商
常量分配器=[
{id:1,名称:'Distributor 1'},
{id:2,名称:'Distributor 2'},
{id:3,名称:'Distributor 3'},
];
//等待产品组
const groups=等待getProductGroups();
//将组映射到承诺
const groupPromises=groups.map({id:pgId})=>{
//让分销商遵守承诺
const distributorPromises=distributors.map({id:dId})=>getDistributorData(dId,pgId));
//决心
return Promise.all(distributorPromises).then(data=>data.flat());
});
//等待
const data=wait Promise.all(组承诺);
控制台日志(数据);

})();是的,它有帮助。非常感谢。但是我在映射方面有问题。如何根据产品组密钥对数据变量进行分组?这是我的担忧…@Tudor RaduBarbu我更新了这个例子。现在,我只需切换顺序,以便将组用于外部映射。这样,生成的数据数组将自动为每个组包含一个条目,即分发服务器数据数组。如果这不是您需要的,那么您需要详细说明所需结果数据的结构。