微信小程序的接口都是异步的,如果用for循环
var arr = [];
for(var i = 0;i<5;i++){
wx.request({
url: '',
header: {
'content-type': 'application/json', // 默认值
"Authorization": 'Bearer ' + wx.getStorageSync('token'),
},
success(resp) {
arr.push(resp.data)
}
})
}
setTimeout(function(){
console.log(arr);
},1000)
用定时器不好控制接口请求需要的时间,这种方法在实际操作中可用性太低.
可以用递归代替
getammeternumber:function(res,i,length){
var that = this;
var ammeterInfo = that.data.ammeterInfo;
wx.request({
url: '',
header: {
'content-type': 'application/json', // 默认值
"Authorization": 'Bearer ' + wx.getStorageSync('token'),
},
success(resp) {
ammeterInfo.push(resp.data);
that.setData({
ammeterInfo: ammeterInfo
})
if (++i< length) {
that.getammeternumber(res, i, length);
}else{
wx.hideLoading();
}
}
})
},
调用:
that.getammeternumber(res, 0, res.data.length);