关于微信小程序执行顺序问题

2020-05-03 教育 130阅读
// app.js
....
doLogin() {
    if (!wx.getStorageSync("userid") && !wx.getStorageSync("token")) {
        // 登录
        wx.login({
            success: res => {
                //自己的后台
                http.post({
                    url: "/xxxxxx",
                        params: {
                        code: res.code
                    },
                    success: (data) => {
                        this.globalData.userInfo = data.userInfo
                        wx.setStorageSync("userid", data.userid);
                        wx.setStorageSync("token", data.token);
                    },
                    error: (data) => {
                    }
                })
            }
        })
    }
},
....
//这个方法就是,用个定时器,
afterLogin(that, call) {
    this.loading(that);//菊花图loading组件
    if (this.globalData.userInfo) {
        call()
    } else {
        var count = 0;
        var t = setInterval(() => {
        if (this.globalData.userInfo) {
            clearInterval(t)
            call();
        } else {
            if (count >= 300) { // 30s未成功则登录失败
                clearInterval(t)
                this.loading(that);//菊花图loading组件
                //提示框方法
                this.msg.showToast(that, "获取登录信息失败")
            }
            count++;
        }
        }, 100)
    }
},
....
//index.js
var app = getApp()
...
onLoad: function (options) {
    app.afterLogin(this, () => {
        //这里放,你要在登录后做的事
    })
},
...

这样能解决不?也是看别人的代码,就是用计时器setInterval每隔100毫秒执行一次,看看登录信息拿到没有,拿到了,在进行后续操作。

声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com