onLoad: function (options) {
var inTheatersUrl = app.globalData.doubanBase +"/v2/movie/in_theaters";
var comingSoonUrl = app.globalData.doubanBase +"/v2/movie/coming_soon";
var top250Url = app.globalData.doubanBase +"/v2/movie/top250";
this.getMovieListData(inTheatersUrl);
this.getMovieListData(comingSoonUrl);
this.getMovieListData(top250Url);
},
getMovieListData(url){
wx.request({
url: url,
method: 'GET',
header: {
'Content-Type': 'json'
},
success: function (res) {
console.log(res)
}
})
},
这三个都是wx.request请求,但是他们进行的先后顺序和
this.getMovieListData(inTheatersUrl);
this.getMovieListData(comingSoonUrl);
this.getMovieListData(top250Url);
他们的顺序是不一样的,他们是异步的
所以在使用对象的时候要先给对象在data里面设置一个初始值,否则会报错
(自己理解,因为是异步所以程序很快就走完了,所以就去渲染前端页面,但是此时并没有发现前端页面的变量所以报错了,解决的办法就是在data中设置初始值)
inTheaters:{},
comingSoon:{},
top250:{}
那么他们是异步的,如何获取到他们执行函数后获得到的值呢?就是在执行函数时同时传入参数,使用数组或对象下标的方式给变量赋值。
如:
var readyData = {} //声明一个对象
readyData[settedKey] = movies; //设置值所在下标
this.setData(readyData) //设置变量成功 settedKey变量名 movies 值