收藏
回答

wx.request请求的url中有变量,为什么回调函数中打印该变量的值只有最后一项?

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 个回答

  • 微盟
    微盟
    2019-10-16

    如果业务场景非要在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只有一个
        }
      })
    }


    2019-10-16
    有用
    回复
  • 痛快科技
    痛快科技
    2019-10-15

    js异步的问题

    2019-10-15
    有用
    回复 2
    • Alice
      Alice
      2019-10-15
      请问大神如何解决呢?wx.request似乎没有配置async的参数
      2019-10-15
      回复
    • 痛快科技
      痛快科技
      2019-10-15回复Alice
      在for循环中写request,不建议这种方式的编程,可以优化一下,合成一个请求
      2019-10-15
      回复
登录 后发表内容
问题标签