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

发布于 7 年前作者 juan2610748 次浏览最后编辑 7 年前来自 issues
5 回复
minjin
minjin1 楼6 年前

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

ping14
ping142 楼6 年前

异步了 配合 async await 方可解决

xiafang
xiafang3 楼6 年前

不太理解,截图Storage看看

kwan
kwan4 楼6 年前

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

hzhao
hzhao5 楼5 年前

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

}