关于for循环一级作用域是有序的但二级作用域是无序的
wechatide://minicode/VYu6vXmR7K1Y 代码片段
3 回复
你是要保证加载的顺序和最初的列表顺序一致吗?
let list = [image1,image2,image3]
let position = 0
let length = list.length
let loop = function(){
let image = list[position]
wx.getImageInfo({
success:(res)=>{
//doSomething
if (++position<length){
loop()
}
}
})
}
wx.getImageInfo()函数是异步的,肯定会导致for循环错位,你要想有序可以使用settimeout实现
var i=0; var timer=setTimeout( function (){ console.log(i); var timerThat= this ; //定时函数 if (i<9){ wx.getImageInfo({ src:url, success: function (res){ i++; console.log(i); //执行你要的代码块; timer=setTimeout(timerThat,50); //下一次循环 } }) } else { console.log(i); clearTimeout(timer); } },50) |