在下面编写的从API获取数据的代码中,我获得了Promise作为输出而不是数据的信息。我想念什么?有人可以帮忙吗?
const axios = require('axios');
const ageFinder = async (userName) => {
try {
let userDetails =await axios.get(`https://hacker-news.firebaseio.com/v0/user/${userName}.json`)
let user =userDetails.data
return user
} catch(err) {
console.log(err.message)
}
}
console.log(ageFinder("someUser"))
答案 0 :(得分:0)
根据MDN page on async functions,任何声明为async
的函数都将返回一个promise,它将解决函数returns
的任何问题,或者在函数中遇到任何错误时将其拒绝(请参见“返回值”部分(位于上面链接的页面)。
因此,您需要在登录之前将函数调用ageFinder("someUser")
放在另一个异步函数中,并将其结果await
放在日志中,否则您可以使用.then()
。
答案 1 :(得分:0)
async
函数始终返回承诺。要使用它,您需要在另一个await
函数中async
。如果您不想在另一个await
函数中使用async
,则可以将其与其他then
方法一起使用。例如:
ageFinder("someUser")
.then((response) => {
console.log(response);
}).
.catch((err) => {
console.log(err);
});