Javascript:如何在继续之前等待获取结果



这个问题以前可能在这里被问过,很抱歉,但我在任何地方都找不到解决问题的方法。我对JavaScript和";承诺">对我来说是陌生的。我正在尝试制作一个代码,从.JSON文件加载一个数组,加载后,代码将继续。

async function fetchTags() {
var response = await fetch('../json/tags.json');
var json = await response.json();
console.log(json); // returns: Array()
return json;
}
function mainFunction() {
let tags = fetchTags();
console.log(tags); // returns: Promise { <state>: "pending" }
}

这就是我当前的代码,使用一个不工作的";解决方案";我在网上找到的。当异步函数内部的console.log(json)正确地返回数组时,主函数的console.log(tags)用";挂起";state,如果我理解正确的话,它会在数组加载之前显示。

然而,mainFunction()的以下代码强烈依赖于此数组,并且在加载数组之前不应继续执行。我在哪里犯错误?

非常感谢您的回复。

此时,fetchTags是一个异步函数,在调用它时需要将其视为异步函数

  1. async/await用于mainFunction函数:
async function mainFunction() {
let tags = await fetchTags()
console.log(tags)
}
  1. 适当处理函数返回的promise:
function mainFunction() {
fetchTags()
.then(console.log)
.catch(console.error)
}

相关内容

  • 没有找到相关文章

最新更新