微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 使用Async / Await获取API返回值意外

参见英文答案 > 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();
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐