es7的async号称是解决问题的最终方案
1.在小程序开发工具中,勾选es6转es5语法
2.下载facbook的regenerator库中的
https://github.com/facebook/regenerator/blob/master/packages/regenerator-runtime/runtime.js
3.在小程序目录下新建文件夹lib/runtime/runtime.js,将代码拷贝进去
4.在每一个需要使用async语法的页面js中,都引入(不能全局引入)
import regeneratorRuntime from '../../lib/runtime/runtime';
5.修改请求代码
async getSwiperList(){
//执行const res = await request({ur:"https://api.zbztb.cn/api/public/v1/home/swiperdata"});时,如果请求数据没有返回结果,是不会执行接下来的代码的
const res = await request({ur:"https://api.zbztb.cn/api/public/v1/home/swiperdata"});
this.setData({
swiperList:result.data.message
});
/**
* 把接口中的数据存入本地缓存中
* 这样就可以判断有没有本地缓存
* 如果有,且时间没有过期,就不在发送请求,
* 如果没有,则发送请求
*/
wx.setStorageSync('swiperList',{
time:DataCue.now(),//存储的请求成功,保持数据时的时间
data:result.data.message//存储的请求成功时,返回的数据
})
}