Javascript 异步/等待函数

Javascript 异步/等待函数,javascript,api,async-await,Javascript,Api,Async Await,我试图从url中提取数据,但不确定我做错了什么。当我console.log返回的result.data时,我得到一个承诺,但当我在函数中console.log result.data时,我得到所有数据。这是我的密码: async function getTeams() { const result = await axios({ method: "get", url: 'http://api.sportradar.us/ncaafb-t1/teams/FB

我试图从url中提取数据,但不确定我做错了什么。当我console.log返回的result.data时,我得到一个承诺,但当我在函数中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]);
    }
})
异步函数getTeams(){ 常量结果=等待axios({ 方法:“获取”, 网址:'http://api.sportradar.us/ncaafb-t1/teams/FBS/2018/REG/standings.json?api_key=sg8pf7bdjt5u8ueedttyytwx', }); 返回结果数据; } 让团队=[]; getTeams()。然后(数据=>{ 设acc=data.division.conferences[0]; for(设i=0;i异步函数总是返回一个承诺。在记录返回值时,异步操作尚未完成——在异步操作继续之前,控件必须返回到JavaScript主循环

您必须等待返回的承诺:

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

这回答了你的问题吗<然后((响应)=>console.log(响应))您没有做错任何事情:您知道调用异步函数的结果将始终是一个承诺。依赖于该承诺输出的所有内容都必须在then回调中,或者在异步函数中使用WAIT。我不这么认为。我试着通读了一遍,我想我理解了异步/等待函数,以及承诺是如何工作的,但不知道应该做什么。绑定控制台上下文是不必要的。至少不在chrome/node中。@JaredSmith是的,我知道。我们不知道OP是否在使用这两种环境中的任何一种,所以我不会给他们只在这种情况下才有效的代码。好奇的是,什么环境需要它?“我显然需要更频繁地外出……”JaredSmith在一个需要绑定控制台方法的浏览器中运行ES6。