为什么wx.getStorageSync()获取值时是上一次存取的值,而不是本次的值?原因异步接口?
发布于 5 年前 作者 juan26 10574 次浏览 来自 官方Issues
5 回复

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

异步了 配合 async await 方可解决

不太理解,截图Storage看看

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

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’))

}

回到顶部