我有一个包含异步函数的简单for循环,我的问题是循环遍历所有值,然后只执行内部的异步函数。
<img src="images/model1.jpg" alt="model women 1">
<img src="images/model2.jpg" alt="model women 2">
<img src="images/model3.jpg" alt="model women 3">
所以它打印在数组中的每个元素的外部,然后它只在所有outised之后打印,我希望有一个外部然后和内部等等。我查看了https://www.promisejs.org/,但我不确定如何使用我的代码实现这一点。
答案 0 :(得分:1)
您可以使用lodash.eachSeries,但这不是最佳解决方案。如果我是你,我会尝试将for循环中的所有内容移动到一个函数中,这样你就可以在里面看到所有变量。 更像这样:
function calculate(value){
calculatePower(value);
var octopusMAC = getOctopusIDFromRaw(value);
var channelID = getChannelIDFromRaw(value);
console.log("outside")
getChannelCTSize(octopusMAC, channelID, function (result) {
console.log("inside")
var timestamp = convertDateTimeToInt(transmission.date);
var adcTicks = getAdcTicksFromRaw(value);
var power = convertAdcTicksToAmps(parseInt(adcTicks, 16), result);
console.log("channelID: " + channelID + " ADC ticks HEX: " + adcTicks + " timestamp: " + timestamp + " power for " + result + "A CT Size: " + power);
});
}
for(key in splitedDataArray){
calc(splitedDataArray[key]);
}
它不会打印出来:out / in / out / in,但会在每个循环中获得良好的值。 如果你需要那个订单/出/出/出/我将从lodash为每个系列。