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