首页 > 解决方案 > 如何在axios之外返回一个变量?

问题描述

我正在尝试使用 axios 响应将数据映射到变量,但是当我将其返回给另一个函数以供使用时,该变量仍然为空。以下是我的代码:

function factoryBootup() {

  var userInfo = {
    userName: "",
    prefixUrl: ""
  };

  let instance = axios.create({
    timeout: requestTimeout
  });

  instance.get(bootUrl, {
  }).then(function(response) {
    var jsonObj =  JSON.stringify(response.data);
    var a = JSON.parse(jsonObj);
    userInfo.userName = a.userInfo.userId;
    userInfo.prefixUrl = a.userInfo.urlId;
  }).catch((error) => {
    console.log("Get error happens: " + error);
  });

  return userInfo;
}

我想将userInfo变量导出到函数之外,但它似乎不起作用。任何人都可以帮助我吗?

标签: javascriptaxios

解决方案


你可以这样试试

function factoryBootup() {
    let instance = axios.create({
        timeout: requestTimeout
    });

    return instance.get(bootUrl, {});
}

然后在您可能想要使用它的任何地方使用该函数,如下所示:

factoryBootup()
    .then(function(response) {
        var jsonObj =  JSON.stringify(response.data);
        var a = JSON.parse(jsonObj);
        //userInfo.userName = a.userInfo.userId;
        //userInfo.prefixUrl = a.userInfo.urlId;

    })
    .catch((error) => {
        console.log("Get error happens: " + error);
    });

推荐阅读