抱歉这个基本问题。我正在尝试使用 fetch 从 api 获取数据,并希望将该响应存储到 javascript 变量中,但它没有像我预期的那样工作 我的代码-
async function fun() {
var a = "initial";
fetch('https://jsonplaceholder.typicode.com/todos/1')
.then(res => res.json())
.then(data => {
a = data;
console.log(a);
})
await console.log("Response => ", a);
}
Run Code Online (Sandbox Code Playgroud)
输出 - 响应 => 初始
这样做的正确方法是什么。
小智 5
await您可能需要在之前添加fetch。
async function fun() {
var a = "initial";
await fetch('https://jsonplaceholder.typicode.com/todos/1')
.then(res => res.json())
.then(data => {
a = data;
console.log(a);
})
console.log("Response => ", a);
}
Run Code Online (Sandbox Code Playgroud)
你所做的超出了你需要做的。您的 fetch 调用应该返回承诺。然后当您想要访问数据时,您可以await调用fun,并且可以读取响应
async function fun() {
return fetch('https://jsonplaceholder.typicode.com/todos/1').then(res => res.json());
}
const data = await fun();
Run Code Online (Sandbox Code Playgroud)
或者,如果你只想使用async/await你可以做类似的事情
const fun = async () => {
const response = await fetch("https://jsonplaceholder.typicode.com/todos/1");
return response.json()
}
await fun();
Run Code Online (Sandbox Code Playgroud)