参见英文答案 > js async/await return promise 1个
这是功能:
const getUserIP = async () => {
let response = await fetch('https://jsonip.com/');
let json = await response.json();
console.log(json.ip)
return json.ip;
};
在控制台中,按预期记录IP地址.但是,当我将’IP地址’保存到变量时:
const ip = getUserIP();
然后在控制台中输入ip,值显示为:
Promise { <state>: "fulfilled", <value>: "/* my IP here*/" }
我在YouTube上观看了使用相同逻辑/语法的视频,尽管它们使用的是不同的API,但它确实有用.我搜索了Google和SO,但找不到具有相同问题的帖子.
我错过了什么?
谢谢.
解决方法:
Async functions返回Promises,你需要获得如下值:
getUserIP().then(ip => console.log(ip)).catch(err => console.log(err));
或者,您可以将async声明添加到调用函数getUserIP的main函数中:
async function main() {
const ip = await getUserIP();
}