异步/等待函数

蒂莫西·威尔莫特

我正在尝试从 url 中提取数据,但不确定我做错了什么。当我 console.log 返回的 result.data 时,我得到了一个 Promise,但是当我在我的函数中 console.log result.data 时,我得到了所有的数据。这是我的代码:

async function getTeams() {
    const result = await axios({
        method: "get",
        url: 'http://api.sportradar.us/ncaafb-t1/teams/FBS/2018/REG/standings.json?api_key=sg8pf7bdjt5u8ueedttyytwx',
    });
    console.log(result.data);
    return result.data;
}
console.log(getTeams());

我不确定我应该做些什么来获得完整的承诺。

编辑:我需要使用带有回调的 getTeams().then() 才能更好地工作。但是,现在我遇到了将数据存储在 .then() 中的问题,我可以访问全局变量。我的代码现在看起来像:

async function getTeams() {
    const result = await axios({
        method: "get",
        url: 'http://api.sportradar.us/ncaafb-t1/teams/FBS/2018/REG/standings.json?api_key=sg8pf7bdjt5u8ueedttyytwx',
    });
    return result.data;
}
let teams = [];
getTeams().then(data => {
    let acc = data.division.conferences[0];
    for (let i = 0; i < acc.teams.length; i++) {
        teams.push(acc.teams[i]);
    }
})
乔维

异步函数总是返回一个承诺。在您记录返回值时,异步操作尚未完成——在异步操作可以继续之前,控制必须返回到 JavaScript 主循环。

您必须等待返回的承诺:

getTeams().then(console.log.bind(console));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章