小程序首次请求超前的问题(异步导致的没有附带token的问题)

  • Post author:
  • Post category:小程序




场景

  • 在用户授权后,发起异步的登陆系统 && 获取token,然后跳转到首页, 首页onload函数发起小程序的首个正式请求, 但是这时候极有可能是没有获取到token, 所以请求也是很可能失败的



分析


  • 轮询是否存在token ,直到获得了token才发起请求, 轮询的时候间隔应该足够短, 这样可以确保发起请求的时间足够快



解决

    // 循环检查是否存在私有token, 如果存在则发送请求
    let interval_id;
    let promise = new Promise((resolve, reject)=>{
      interval_id = setInterval(()=>{
        // 如果存在私有token 则请求最新的期刊
        if(token_model.getPersonalToken()){
          let promise = this.request({ url: 'api/v1/mini/periodical/latest' }).then(response => {
            wx.setStorageSync('latest_classic', response);
            resolve(response);
          });
        }
      }, 200);  
    });
    
    // 清除定时
    promise.then(()=>{
      clearInterval(interval_id);
    }).catch(()=>{
      clearInterval(interval_id);
    });

    return promise;



版权声明:本文为cominglately原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。