function waitVar(key,varb, fun) { //等待指定变量,返回:-1:无数据,继续等待 -2:超时 1:成功。fun不支持参数
if (!cnt2[key]) {
cnt2[key] = 1
}
else {
cnt2[key]++
}
if (!varb || varb.length == 0) {
if (cnt2[key] > 10) { //超时,由于都是异步操作,相互依赖的变量会同时判断,所以这个时间是最大的
wx.showToast({
title: '无法获取数据!',
image: "/remind.png",
duration: 3000
})
return -2
}
else {
console.log("等待变量同步" + key, varb)
wx.showToast({
title: '正在下载数据!',
image: "/remind.png",
duration: 500
})
if (arguments.length == 3) //正常状态,fun没有参数
setTimeout(fun, 500)
//对于onLoad无法使用,因为他的参数无法像普通参数一样处理
if (arguments.length == 4) //正常状态,fun有1个参数,arguments不能按照数组来处理,不能用slice,所以逐个处理
{
console.log("参数",arguments,arguments[3])
setTimeout(fun, 500, arguments[3]) //arguments:0,1,2:3个参数。3:传递给fun的参数。setTimeout(回调函数,时间,参数1,...,参数n)
}
return -1
}
}
return 1
}