最近在小程序开发遇到一个问题 当我进行request请求的时候 如果参数是动态 那我得写个for循环把参数循环出来进行request请求 比如这样
for (let i = 0; i < data.length; i++) {
wx.request({
url: ''+'/'+data[i].item,
method: '',
success: function (res) {}
})
}
然后在成功毁掉函数里给他setData,写完发现一个问题 页面上只渲染了最后一个数据并没有全部渲染出来,后来想了个方法,我在外面创建一个全局变量用来保存获取的数据,再重新循环这个全局变量,但是实际操作发现在外面读取不到里面的数据 百度了一下说是因为request是异步操作 你在外面读取里面的数据是读取不到的 虽然打印出来有数据 但是无法操作 后来想了个办法
我在request里面setData为全局变量 外面写一个计时器1秒钟后执行 这样就能读取到里面的数据了
setTimeout(function () {
var item = that.data.item;
for (let i = 0; i < item.length; i++) {
that.setData({
data: item.data
})
}, 500);
这样就能成功渲染了