wx.request请求的url中有变量,为什么回调函数中打印该变量的值只有最后一项?
发布于 5 年前 作者 chao24 609 次浏览 来自 官方Issues

if (assignee == null) { 

console.log(taskid); //此处taskid可以获取到所有的值

wx.request({

url:activitiIp + “runtime/tasks/” + taskid +"/identitylinks",  //url中需要变量taskid不断请求不同接口

header: {

‘content-type’: ‘application/json’

},

async:false,

data:{

size: 100,

order: “desc”

},

success:function (json1) {

console.log(“00000------------”+taskid); //此处再次打印taskid就只有最后一个值了,导致我请求的url只有一个

}

})

}

整个if语句都放在上一个接口 wx.request  sucess 的for循环中

2 回复

如果业务场景非要在for里写请求,建议把请求封装成一个函数,然后再调用会比较好。

if (assignee == null) {

  this.requestApi(activitiIp,taskid,()=>{

   // 做点什么

 })

}
 
requestApi(activitiIp,taskid,callback){
  console.log(taskid); //此处taskid可以获取到所有的值
  wx.request({
    url:activitiIp + "runtime/tasks/" + taskid +"/identitylinks"//url中需要变量taskid不断请求不同接口
 
    header: {
      'content-type': 'application/json'
    },
    async:false,
    data:{
      size: 100,
      order: "desc"
    },
    success:function (res) {
      callback && callback()
      console.log("00000------------"+taskid); //此处再次打印taskid就只有最后一个值了,导致我请求的url只有一个
    }
  })
}

js异步的问题

回到顶部