用户
 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,登录网站

1

主题

1

帖子

13

积分

新手上路

Rank: 1

积分
13
2019-9-18 16:05:40 hardy19a 新手上路 楼主 1311
[JavaScript] 纯文本查看 复制代码
var that = this;
    wx.getStorage({
        key: 'code',
        success: function (res) {
          var value = res.data
          that.setData({
            code:res.data
          })
        }
    })
    console.log(this.data);
    if(!that.data.code){
      wx.redirectTo({
        url: '/pages/validate/user',
      })
    }
    // 设置页面标题
    App.setTitle();
    // 设置navbar标题、颜色
    App.setNavigationBar();
    // 获取首页数据
    this.getIndexData();

我想读取缓存里面数据判断我的跳转,我目前log出来的时候code是有值的。当时到了判断。。。。就还是走了跳转。这是什么原因啊?

异步调用的问题,你用的 getStorage 和 setData 全都是异步的,也就是说,前面的取缓存和setData可能都没执行完,后面的跳转已经开始判断了。

个人采用的办法是:
1、使用getStorageSync获取缓存
2、如果要在setData之后就要立即使用数据进行判断,那么在setData之前加一句:
      that.data.code = value

另外,如果code不用来显示,就不需要使用setData,使用一个全局变量来存储也可以。
发新帖
您需要登录后才可以回帖 登录 | 立即注册