我试图从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' }
答案 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);
});