Return 来自未决承诺的数据
Return data from a pending promise
正在尝试将响应存储到变量中。不知道我做错了什么。任何帮助将不胜感激。
async function fetchData(url) {
const response = await fetch(url);
if (!response.ok) {
const message = `An error has occured: ${response.status}`;
throw new Error(message);
}
const data = await response.json();
return data;
}
async function getActivities() {
let response = null;
try {
response = await fetchData("https://www.boredapi.com/api/activity");
return response;
} catch (error) {
throw error;
}
}
let data = getActivities();
console.log(data);
您将不得不等待 return 来自 getActivities
的承诺得到解决。由于您将该函数标记为 async
,它将 return 解析为函数的 return 值的承诺。
例如:
getActivities()
.then(data => console.log(data));
或者,将您的应用程序逻辑包装到一个 async
函数中,这样您就可以使用 await
:
async function main() {
let data = await getActivities();
console.log(data);
}
main();
一旦 top level awaits 成为现实,就没有必要将您的逻辑包装在主函数中。
使用您在函数中使用的相同逻辑,
console.log()
会在您的数据返回之前执行得很好。
您可以使用 .then()
getActivities().then(data =>
{ console.log(data);
});
或者如果你想和另一个一起去 async/await
(async randomFunction() {
let data = await getActivities();
console.log(data);
}());
正在尝试将响应存储到变量中。不知道我做错了什么。任何帮助将不胜感激。
async function fetchData(url) {
const response = await fetch(url);
if (!response.ok) {
const message = `An error has occured: ${response.status}`;
throw new Error(message);
}
const data = await response.json();
return data;
}
async function getActivities() {
let response = null;
try {
response = await fetchData("https://www.boredapi.com/api/activity");
return response;
} catch (error) {
throw error;
}
}
let data = getActivities();
console.log(data);
您将不得不等待 return 来自 getActivities
的承诺得到解决。由于您将该函数标记为 async
,它将 return 解析为函数的 return 值的承诺。
例如:
getActivities()
.then(data => console.log(data));
或者,将您的应用程序逻辑包装到一个 async
函数中,这样您就可以使用 await
:
async function main() {
let data = await getActivities();
console.log(data);
}
main();
一旦 top level awaits 成为现实,就没有必要将您的逻辑包装在主函数中。
使用您在函数中使用的相同逻辑,
console.log()
会在您的数据返回之前执行得很好。
您可以使用 .then()
getActivities().then(data =>
{ console.log(data);
});
或者如果你想和另一个一起去 async/await
(async randomFunction() {
let data = await getActivities();
console.log(data);
}());