收藏
回答

wx.request嵌套取值

wx.request({

method:"POST",

success:(res)=>{

    var data = res;

    for(var i=0;i<data.length;i++){

    if(data[i].status == 1){

            wx.request({

            data:data[i].id,

            method:"POST",

            success:(res)=>{

                    data[i].username = "警察"

                } 

        })

}

}

}

})


典型的wx.request 嵌套。但是实际执行当中,会报错 Cannot set property 'username ' of undefined  。因为外层定义的 data ,并不会等待嵌套的wx.request执行完,然后再去向下执行。这个怎么解决呢?


我想达到的目的是 ,当status=1的时候,传递这个id,且修改data里面username这个数据 。怎么能够先执行内嵌套的request


回答关注问题邀请回答
收藏

4 个回答

  • C.Q.Q
    C.Q.Q
    2018-10-19

    同意后端做,但是你还有遇到这样的场景,建议你了解下Promise,并将接口封装成Promise方式。还有,尽量不要使用var,应该使用let和const。

    2018-10-19
    赞同
    回复
  • moonsam®
    moonsam®
    2018-10-14

    感谢,放到后端处理了。

    2018-10-14
    赞同
    回复
  • 卢霄霄
    卢霄霄
    2018-10-14

    同意楼上,这应该后台查好,一个接口返给你比较好。。如果你坚持,试试在for循环的第一行加个

    let current = data[i]

    然后接下来都用current

    2018-10-14
    赞同
    回复
  • 强15851218976
    强15851218976
    2018-10-14

    你的这种要求适合在后端做,前端发一个请求就可以了,如果是需要在创建一个资源项的同时,去修改这个资源中其它项的数据,那就在POST对应的后端方法中去做这件事。

    2018-10-14
    赞同
    回复
登录 后发表内容