返回的axios数据未定义

时间:2018-09-29 12:24:41

标签: node.js electron axios

我试图从pastebin链接中获取json数据并将其用作我的电子应用程序中的弹出窗口,但是当尝试返回axios请求数据时,它出现未定义状态,并且console.log的执行早于.then由于某种原因,我认为这与请求异步有关,但是我还没有找到等待.then的方法。

代码:

function grabPopup(fetchurl) {
  axios
    .get(fetchurl)
    .then(response => {
      // handle success
      //console.log(response.data);
      return response.data;
    })
    .catch(function(error) {
      // handle error
      console.log(error);
    });
}

console.log(grabPopup("https://pastebin.com/raw/0L1erTs1"));

控制台输出:

undefined
{ title: 'Test', message: 'Test2' }

1 个答案:

答案 0 :(得分:2)

grabPopup的问题在于它没有公开潜在的承诺,应该是:

function grabPopup(fetchurl) {
  return axios.get(fetchurl)...
}

这是this popular problem的特例。由于该功能 a 是同步的,因此无法同步访问结果。

应该是:

grabPopup("https://pastebin.com/raw/0L1erTs1")).then(result => {
  console.log(result);
});