JavaScript Fetch API - 将输出保存为对象

标签 javascript fetch-api weather-api

我正在尝试弄清楚如何将获取的输出保存到变量中。我的目标是将其用作对象。

这是我的代码:

async function getWeather() {
    let response = await fetch('url');
    let result = await response.json();
    return console.log(result);
}
getWeather();

该代码给了我预期的响应

the expected response

我尝试返回结果而不是控制台日志并将其存储在变量( let weather=getWeather(); )中,这给了我 promise 对象

the promise object

当我控制台登录时weather .

我还尝试了这个问题的另一种解决方案,已得到解答 here ,但是当我尝试在获取之外控制台记录对象时,我会得到未定义的结果。

还有其他解决办法吗?

最佳答案

您已将其定义为 async 函数,它始终会首先返回一个 Promise

console.log() 调用中使用 await 关键字来 await 获取返回值。

async function getWeather() {
    let response = await fetch('https://api.weather.gov/alerts');
    let result = await response.json();
    return result;
}

(async () => {
    document.querySelector("#output").innerText = JSON.stringify(await getWeather(), null, 2);
})();
<pre id="output"></pre>

关于JavaScript Fetch API - 将输出保存为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61536110/

相关文章:

javascript - JavaScript 中的跨域数据访问

javascript - 错误! 404 未找到 : @babel/preset-vue@^7. 1.0

javascript - 如何在 Firefox 中强制下载 PDF?

javascript - Ember 数据 FixtureAdapter 有很多 - 无法调用未定义的方法 'toString'

javascript - 如何捕获 fetch 的 then() 中的 json 文本

typescript - TanStack useQuery函数中的AbortSignal在什么情况下未定义?

Python HTTP 错误 403 禁止访问

javascript - fetch 即使 404 也解析?

java - JSON IOException 错误 每日预测没有值

java - 使用 Java 查找天气