小程序
小游戏
企业微信
微信支付
扫描小程序码分享
wechatide://minicode/VYu6vXmR7K1Y 代码片段
3 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
老哥了解一下js的异步原理吧。
用闭包解决这个问题。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
你是要保证加载的顺序和最初的列表顺序一致吗?
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;
timer=setTimeout(
function
(){
console.log(i);
timerThat=
this
;
//定时函数
if
(i<9){
src:url,
success:
(res){
i++;
//执行你要的代码块;
timer=setTimeout(timerThat,50);
//下一次循环
else
{
clearTimeout(timer);
},50)
就是用setTimeout代替for循环的意思吗
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
老哥了解一下js的异步原理吧。
用闭包解决这个问题。
你是要保证加载的顺序和最初的列表顺序一致吗?
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)
就是用setTimeout代替for循环的意思吗