forループを使用する場合、WeChatアプレットのインターフェースはすべて非同期です。
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);