收藏
回答

如何保证app.js中的请求完成后page里的index.js才会请求

在app.js的onLaunch中执行请求授权和获取服务端的token,然后首页的js拿着这个token去后台请求接口,但有时会出现token还没拿到就去后台请求API接口了,这个问题怎么解决啊?

最后一次编辑于  2018-12-22  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

3 个回答

  • 赵青山
    赵青山
    2018-12-23

    方法很多啊,有简单的和复杂的,复杂的更通用,大概是这种模式

    app.js页

    getToken(){

        wx.request({

        url:'xxx',

        success:(res)=>{

             this.globalData.token = res.data.token;

            this.globalData.tokenCallback && this.globalData.tokenCallback();//如果回调函数存在就执行

        }

        }

    }

    index.js

    里判断一下

    if(app.globalData.token){//如果已经赋值成功就直接用

        //获取到token后的执行逻辑

    }else{//如果没有赋值成功就预先写好一个回调函数,然后获取到token后执行回调函数就行了

        app.globalData.tokenCallback = function(token){

                //获取到token后的执行逻辑

        }

    }



    2018-12-23
    赞同
    回复
  • 沃德天·维森陌·拉莫帅🌝
    沃德天·维森陌·拉莫帅🌝
    2018-12-22

    可以考虑在首页的js去请求token,请求成功再去后台请求api接口,或者在首页弄个定时器,隔一段时间去查找token是否有值,有值就去调后台api,没值就继续轮询

    2018-12-22
    赞同
    回复
  • 管凯旋
    管凯旋
    2018-12-22

    getApp().login().then(function(){

    //to do

    })


    2018-12-22
    赞同
    回复