发个扫盲贴,大神请绕道。最近好多同学问我如何再请求数据成功后直接使用数据。我们通常的做法就是在请求成功后,再调用我们定义的方法,进而使用数据。如下代码
onLoad() {
let that=this
wx.cloud.database().collection("users").get({
success(res) {
that.setData(res.data)
},
fail(res) {
}
})
},
showData(dataList) {
//.........做数据处理
},
我们这样写其实也没什么不对,但是如果数据请求和使用是在两个不同的页面呢。 比如我们在app.js里请求位置,获取用户信息。然后在首页index.js里要使用这些数据,那么我们这么写就有问题了。下面就来教大家两种方式来很好的解决这个问题。
一,通过callback回调。
先看下代码,然后我再具体给大家讲解下原理。
- app.js里定义如下方法
- 然后再index.js 里这么使用
这时候,其实就可以看到了,我们在首页index.js里调用了app.js里的请求数据的方法,并且可以在index.js里直接使用数据。
原理讲解
原理其实很简单,就是我们在app.js里的获取数据的方法里定义一个参数。而这个参数和普通参数唯一不同的地方,就是这个参数是个function方法