小程序登录token可能在page,load之后才返回?启动获取token会发双份请求

小程序登录从后台换token的网络过程中,有时候会在page onload之后才返回,我岂不是每个page,load的时候都检测一下?
写了个方法,page load 就 toLoin(fn)一下;但是每次第一次进来getOpenId都是发两次的 然后我后面还一般收集一些相关资料的方法也是第一次就发了两次??希望大佬指点一下,就第一次启动会,虽然没啥影响,就相当于登录了两次,但是我不知道怎么处理这块
图片描述

toLogin: function(fn) {
        let that = this;
        if (this.globalData.token) {
            typeof fn == "function" && fn();
        } else {
            if (this.globalData.openid) {
                typeof fn == "function" && fn();
            } else {
                wx.login({
                    success: function(loginres) {

                        if (loginres.code) {

                            that.globalData.code = loginres.code;

                            wx.getUserInfo({
                                success: function(userres) {
                                    that.globalData.userInfo = userres.userInfo;
                                    that.getOpenId(loginres.code, userres.userInfo, fn);
                                }
                            })
                        }
                    }
                })
            }
        }
    },
阅读 2.4k
1 个回答

我这边是登录要发三次请求,主要是和app同步;所以比较麻烦,打了几点console,page onload很大可能会在app onload之前,所以token有时就会不存在 导致后续无法操作,
上面确实写得乱,现在
我直接在page onload 放个定时器 等待app onload的token回来,在执行

推荐问题