wx.request嵌套取值
发布于 5 年前 作者 sunxiulan 14061 次浏览 来自 问答

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 回复

感谢,放到后端处理了。

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

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

let current = data[i]

然后接下来都用current

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

回到顶部