能不能直接在data里直接取缓存和小程序里promise不支持finally()
发布于 6 年前 作者 rye 2994 次浏览 最后一次编辑是 5 年前 来自 问答

两个问题:

  1. 直接在data里写

  2.     {a:wx.getStorageSync(`a`)}

    有时候会取不到值,要重新编译则无问题

    或者在onShow里setData({a:wx.getStorageSync(`a`)})也无问题


    直接在data里取缓存则无效

    在onShow里setData则可获取到


    我想问一下是不能在data里直接取缓存吗?


    2.小程序里是不是不支持Promise的finally方法

    不跟finally()无事,跟上则报错

    贴个报错吧:




1 回复
  1. wx.getStorageSync是异步获取(虽然微信叫sync但是意思是 你可以写同步语法异步获取数据),类似于async await的方法,而data取值是初始化的时候同步执行(类比vue中的data return),你可以在 computed计算属性中去对当前页面结合async await进行异步赋值(我没试过),但是 在生命中期中对data进行覆盖是可以的。(你可以理解为反正执行了,总会在未来的某个程序时间点修改data成功)


  2. promise的finally方法 是es2018的标准方法,微信的使用的webkit内核版本可能有点老不支持,你可以自己polyfill一下。

回到顶部