为什么我得到最后的承诺?
Why I getting the last promise?
我正在尝试处理所有 promise.But 我只得到最后的承诺?我看了 npm axios module.Code 是 运行 在那:
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](); });
我想单独处理所有承诺,因为 below.But 不起作用。
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
}))
您只有一个 params
对象,您正在更改其 .meter
属性 - 它以最后分配的值结束。鉴于这个对象是你的承诺结果的一部分,它在任何地方都是一样的。复制您的 params
以避免这种情况:
axios.all(meters.map(meter => {
const paramObj = Object.assign({}, params, {meter});
return axios.post('https://power.ivyiot.com/Thingworx/Things/GamaNetworkServices/Services/GetHistoricDataByMinute', paramObj, options);
})).then(…)
我正在尝试处理所有 promise.But 我只得到最后的承诺?我看了 npm axios module.Code 是 运行 在那:
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](); });
我想单独处理所有承诺,因为 below.But 不起作用。
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
}))
您只有一个 params
对象,您正在更改其 .meter
属性 - 它以最后分配的值结束。鉴于这个对象是你的承诺结果的一部分,它在任何地方都是一样的。复制您的 params
以避免这种情况:
axios.all(meters.map(meter => {
const paramObj = Object.assign({}, params, {meter});
return axios.post('https://power.ivyiot.com/Thingworx/Things/GamaNetworkServices/Services/GetHistoricDataByMinute', paramObj, options);
})).then(…)