收藏
回答

为什么wx.getStorageSync()获取值时是上一次存取的值,而不是本次的值?原因异步接口?


回答关注问题邀请回答
收藏

6 个回答

  • Lv: Max Human
    Lv: Max Human
    2019-10-31

    你上面是异步拿到值然后同步存。下面内容同步取(每次都会先走)。然后第一次没有内容(因为没存上已经取了)。第二次取会拿到第一次存的(上次存上了,第二次没存上)。第三次取会拿到第二次存的(取到第二次存的,第三次没存上)。

    2019-10-31
    有用 3
    回复 15
    • mmobase
      mmobase
      2020-02-25
      wx.set/getStorageSync这两个方法不是同步的吗
      2020-02-25
      回复
    • bittersweet
      bittersweet
      2020-03-11
      我也有这个问题,您说的没有懂
      2020-03-11
      回复
    • Lv: Max Human
      Lv: Max Human
      2020-03-11回复mmobase
      selectAll 和select
      2020-03-11
      回复
    • bittersweet
      bittersweet
      2020-03-11
      我是在不同页面传值使用的同步存取方法,但是对应的选择框存到云数据库的值都是上一次的。。。
      2020-03-11
      回复
    • bittersweet
      bittersweet
      2020-03-11
      新手求大神帮看
      2020-03-11
      回复
    查看更多(10)
  • 旧巷。
    旧巷。
    2019-10-31

    异步了 配合 async await 方可解决

    2019-10-31
    有用 1
    回复
  • M。
    M。
    2019-10-31

    selectAll()  这个方法是异步的吧

    2019-10-31
    有用 1
    回复
  • biu🤔
    biu🤔
    2019-10-31

    不太理解,截图Storage看看

    2019-10-31
    有用 1
    回复 1
    • 你若撒野
      你若撒野
      2019-10-31
      2019-10-31
      回复
  • 小焦
    小焦
    2020-04-29

    大佬?第一次取不到值,第二次才能取到值您解决了吗?救救孩子吧!怎么解决的?

    2020-04-29
    有用
    回复
  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2019-10-31

    onLoad: async function() {

        await function(){

            return new Promise((rs, rj) => {

                var query = wx.createSelectorQuery()

                query.select('.test').boundingClientRect()

                query.exec(res=> {

                    wx.setStorageSync('a000', res)

                    rs(res)

                })

            })

        }()

        console.log(wx.getStorageSync('a000'))

    }

    2019-10-31
    有用
    回复 2
登录 后发表内容
问题标签