访问在函数内部定义的函数外部的变量

时间:2020-06-12 19:54:22

标签: javascript vue.js global-variables

下面是我的router.js文件的代码的一部分。我在这里面临的问题是,我已经在axios请求外部初始化了一个变量令牌,并在axios请求的响应中为其分配了response.data的值。我在这里面临的问题是我无法在axios请求之外访问token = response.data;的值。如果我尝试在控制台中将其打印出来,它将显示为空,而不是显示在响应请求中分配的response.data的值。但是我可以在响应内部而不是外部的控制台中打印输出。请帮助我解决此问题。

router.js

router.beforeEach(function(to, from, next) {
  if (to.matched.some(record => record.meta.requiresAuth)) {
    var token;
    axios.get('/verified.json')
    axios.get('/agent.json')
      .then(function(response) {
        if (to.path === '/change-password' || to.path === '/login') {
          next('/');
          return;
        }
        if ((from.path === '/registration' || to.path.match(/profile/))) {          
          axios.get('/agent_token.json')
          .then(function(response) {
            token = response.data;
            console.log(token);
          });
          console.log(token);
          next(false);
        }
        else {
          next();
        }        
      })
      .catch(function() {
        if (to.path.match(/profile/)) {
          next('/');
          return;
        }
        next();
      });
  }
  else {
    next();
  }
});

0 个答案:

没有答案