data数据有时取不到
发布于 6 年前 作者 qiang01 15459 次浏览 来自 问答

在app.js中登录后把sessionid存放到storage里,然后在message.js中获取storage并且存放到data中,但在onReady中使用this.data.sessionid时,大部分情况下是能获取到值的,但有一定概率值为空,求解。

3 回复

网络请求还没返回结果,你的load就执行了,网络请求是有波动的,你可以在message.js中写个setInterval循环,每次100ms,然后设计个计数,如果达到多少次还没取到就停止接下去的请求,那如果获取到了,也要停止循环,然后继续执行。还有,请使用__wx.setStorageSync()__同步接口

var GetSessionid = setInterval(function () {

    var sessionid = wx.setStorageSync("sessionid ")

    if(!empty(sessionid)){

        if (!(typeof (GetSessionid) == “undefined”)) {

            clearInterval(GetSessionid)

        }

      }

    }, 100)

这是我加console的结果,看起来像是load方法先执行了,所以获取不到data.sessionid ? 但setData是在onLoad里写的,在onReady里使用的,按理说应该是先执行onLoad再执行onReady吧。(不过这种情况很少见,大多数是可以正常获取的)

涉及到网络请求的都有异步延迟

回到顶部