小程序已经获取了缓存,getStorageSync获取数据时怎么还会发起网络请求?
发布于 7 年前 作者 yong32 3843 次浏览 来自 问答

//设置缓存

getlistdata(){

    var that = this;

    wx.request({

      url: ‘https://api-hmugo-web.itheima.net/api/public/v1/categories’,

      success(res) {

        that.List = res.data.message[0].children[0].children

        that.setData({

          listdata: that.List

        })

        wx.setStorageSync(“listdata”, { data: that.List })

      }

//加载缓存

onLoad: function (options) {

    const Listdata = wx.getStorageSync(“listdata”);

    if (!Listdata){

      this.getlistdata();

    } else {

      this.setData({

        listdata: Listdata.data

      })

    }



两次编译都会发起请求,但是第二次的数据量比较少,刚学小程序,麻烦大神们指点指点

2 回复

你的设置缓存是一个同步方法,接口请求是异步的,在你还没拿到数据时候,缓存已经设置了,此时为空,把缓存设置写在 success方法里面

多好判断啊,注释掉storage操作再执行看结果呗。

回到顶部