【发布时间】:2018-07-04 11:57:45
【问题描述】:
我正在尝试处理所有承诺。但我只得到最后一个承诺?我查看了 npm axios 模块。代码在其中运行:
axios.all([f1(), f2()]).then(axios.spread(function(res1, res2) { //handle }));
我为保持承诺函数创建了一个名为 powerPlants 的新数组:
const powerPlants = meters.map( meter => {
const obj = {};
params.meter = meter; // changing parameter for post request
obj[meter] = function(){
return axios.post('https://power.ivyiot.com/Thingworx/Things/GamaNetworkServices/Services/GetHistoricDataByMinute',params,options);
};
return obj[meter](); });
我想按如下方式单独处理所有承诺。但不起作用。
axios.all(powerPlants).then(axios.spread((a,b,c,d,e,f,g)=>{
console.log(a); //meter parameter of a should be powertTrack2001 but it powerTrack2007
}))
【问题讨论】:
-
WTH 是
obj和obj[meter]方法吗?为什么不直接调用并返回axios.post()? -
您得到的结果究竟是什么?它与预期的结果有何不同?
-
params声明在哪里?您在循环期间不断对其进行变异。 -
我编辑了我的问题。 @Bergi
标签: node.js https promise axios