for循环接口请求,怎么在成功后知道当前请求成功的是哪个

在循环请求后,不支持es6语法,也不传给服务器json格式,接口只会返回成功状态,没有任何的标识,在前端怎么知道当前传递成功的是哪个数组元素。谢谢

var arr = [{
  gymAddr: "00000000",
  trainingActionId: "123",
  deviceId: "1"
}, {
  gymAddr: "00000000",
  trainingActionId: "123",
  deviceId: "2"
}, {
  gymAddr: "00000000",
  trainingActionId: "123",
  deviceId: "3"
}]

for (var i = 0; i < arr.length; i++) {
  wx.request({
    url: "https://localhost:8080/trainingRecord/single",
    data: arr[i],
    method: 'POST',
    header: {
      'content-type': 'application/x-www-form-urlencoded'
    },
    success: function(res) {
      console.log('res', res);
      console.log(this)
    }
  })
}
阅读 2.8k
4 个回答
for (let i = 0; i < arr.length; i++) { // 注意这一行
  request({
    url: "https://localhost:8080/trainingRecord/single",
    data: arr[i],
    method: 'POST',
    header: {
      'content-type': 'application/x-www-form-urlencoded'
    },
    success: function(res) {
      console.log('res', res, i);
      console.log(this)
    }
  })
}

或者:

for (var i = 0; i < arr.length; i++) {
 // 注意下面这一行
  (function(i){
    request({
        url: "https://localhost:8080/trainingRecord/single",
        data: arr[i],
        method: 'POST',
        header: {
          'content-type': 'application/x-www-form-urlencoded'
        },
        success: function(res) {
          console.log('res', res, i);
          console.log(this)
        }
    })
  })(i)
}
for (var i = 0; i < arr.length; i++) {
    (function(){
        var _i=i;
        wx.request({
        ...
        })
    })()
}
var arr = [{
  gymAddr: "00000000",
  trainingActionId: "123",
  deviceId: "1"
}, {
  gymAddr: "00000000",
  trainingActionId: "123",
  deviceId: "2"
}, {
  gymAddr: "00000000",
  trainingActionId: "123",
  deviceId: "3"
}]

for (let i = 0; i < arr.length; i++) {
  wx.request({
    url: "https://localhost:8080/trainingRecord/single",
    data: arr[i],
    method: 'POST',
    header: {
      'content-type': 'application/x-www-form-urlencoded'
    },
    success: function(res) {
      console.log('res', res);
      console.log(this)
      if(res.status == 200){
          console.log(i)
      }
    }
  })
}

闭包 或者用forEach 里边的索引作为索引

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题