callback: function (items) { for (var i = 0; i < items.length; i++) { var tonken = wx.getStorageSync('token'); wx.request({ url: 'http://api.hnlzqs.com/list_structure_img_position', // 仅为示例,并非真实的接口地址 method: 'POST', data: { structureImgId: items[i].id }, header: { appId: 'RAw2ahP5lCGUEDv', VERSION: '1.0', token: tonken, 'Content-type': 'application/json;charset=utf-8' // 默认值 }, success(res) { dw(res.data.items); } }) function dw(res){ console.log(i) } } }, |
(function (i){
// 请求接口放这里
})(i)
缓存也放在里面 最直接的方法就是 吧 var i = let i
谢谢,这个方法可以
循环里面的wx.request是同时发送多个请求, 你在异步回调里面打印i, 当然可能相同值呀
有什么办法解决吗?
success回调里复用该方法就可以了 不要循环
data: {
successNum: 0
},
function
test(){
wx.request({
success(){
this
.data.successNum ++;
this
.test();
}
})
}
successNum 改变值的方式 自己调整下 我是为了方便你看 随便写了
自己设置 i++吗?
额 你可以在调用 request 时 做判断
从你要遍历的数组的第一个开始
每成功一次 变量加一
然后根据变量 判断要用数组哪个元素去再次调用 该函数
直到变量和数组长度相同 不再发送请求
因为循环完了request请求的回调才会执行。
大概是因为异步吧