收藏
回答

为什么有的用户获取不到openid?

wx.setStorageSync('token', openid)   wx.getStorageSync("token") 这个有问题吗? 这几天一直传输给后台数据丢失
 wx.login({
                success: res => {
                    wx.request({
                        url: app.globalData.url + 'login/authorization',
                        method: 'post',
                        data: {
                            code: res.code,
                        },
                        success: res => {
                            if (res.data.code == 200) {
                                wx.setStorageSync('token', res.data.token)
                                that.onGetData();
                            } else {
                                wx.showToast({
                                    title: '发生错误,正在重试',
                                    icon: 'none',
                                    duration: 2000
                                });
                                setTimeout(() => {
                                    that.onShow();
                                }, 3000);
                            }
                        }
                    });
                }
            })
 var that = this;
        wx.request({
            url: app.globalData.url + 'Index/school',
            method: 'POST',
            data: {
                token: wx.getStorageSync("token"),
                keyword: that.data.keyword,
                page: that.data.page,
            },
            success: (res) => {
                // console.log(res)
                if (res.data.code === 200) {
                    const newList = res.data.data.data || [];
                    const list = that.data.page === 1 ? newList : [...that.data.list, ...newList];
                    that.setData({
                        list: list,
                        hasMore: res.data.data.has_more,
                        page: res.data.data.has_more == true ?  that.data.page + 1 : false,
                    });
                } else {
                    wx.showToast({
                        title: res.data.msg || '加载失败',
                        icon: 'none'
                    });
                }
            },
            fail: (err) => {
                that.onShow()
                wx.removeStorageSync('token');
                wx.showToast({
                    title: '网络请求失败',
                    icon: 'none'
                });
            },
            complete: () => {
                wx.hideLoading();
            }
        });

前面几千人使用都没问题
回答关注问题邀请回答
收藏

4 个回答

  • 神经蛙
    神经蛙
    1天前

    两个请求都是异步的,第二个请求(Index/school)有可能发生在第一个前面。

    1天前
    有用 1
    回复 2
    • 哄哄
      哄哄
      1天前
      代码没有写在一起是两个方法
      1天前
      回复
    • 神经蛙
      神经蛙
      1天前回复哄哄
      我的意思你要保证执行的顺序
      1天前
      回复
  • 我是小白
    我是小白
    1天前

    流程没走下去呗,浅尝辄止

    1天前
    有用
    回复
  • 那一抹微笑😊穿透阳光
    那一抹微笑😊穿透阳光
    1天前

    应该是执行顺序的问题,你第二个方法获取的时候,第一个方法还没有返回数据

    1天前
    有用
    回复 1
    • 哄哄
      哄哄
      23小时前
      顺序没问题哈 ,这个是我部分代码截图,
      23小时前
      回复
  • 智能回答 智能回答 本次回答由AI生成
    1天前
    有用
登录 后发表内容