在我的小程序开发过程中,有遇到需要先通过获得request获得数据,再将数据放入那一页面的data中的需求。 而在实现中,发现先赋值给全局变量,再在请求成功后赋值的操作,this.setData并不能成功赋值,而只是获得空数据。 最终发现是wx.request请求异步的问题。
在wx.request的success的返回的分支下执行第二个wx.request,保证其顺序; 再在第二个wx.request的success的返回分支下进行setData的操作,可以成功赋值页面的data
在解决上面问题的过程中,我发现,函数里面,this.setData的操作是不存在的,查询发现,是因为this的指向是在变的,所以,let that = this,本质上是把指向整个page的this存在了that中,方便我们在函数内部,进行对page页的函数调用。
附上解决我这两个问题的blog(虽然解决wx.request异步问题的做法并没有和第一篇中的一致) 解决小程序中wx.request请求异步问题 微信小程序开发中var that =this的用法详解