【发布时间】:2021-08-13 17:35:15
【问题描述】:
在我开始之前,我承认有几个关于 SO 的问题听起来可能与我的标题相似相似,但是,我阅读的所有问题都更多 比我的代码复杂,而且解释似乎与我的情况无关。
谁能帮我理解我的代码(下面的sn-p)中发生了什么导致这个错误:
未捕获的语法错误:await 仅在异步函数中有效,并且 模块的顶层主体。
据我所见,导致错误的await 是在“顶级”正文中。还是顶级机构的其他含义?非常感谢!
EDIT 区别于其他建议的(类似)问题here:我的问题不涉及 httpGet,其他一些上下文不同,最重要的是我收到了答案这为我解决了这个问题,与另一个问题的(单独)答案中给出的建议不同。因此,虽然我能够在这里找到解决方案,但我相信保留我的问题对于普通观众来说是有价值的。
var data;
await getData();
document.body.write(data);
async function getData() {
const res = await fetch("https://jsonplaceholder.typicode.com/posts", {
method: 'GET',
headers: {
'Accept': 'application/json, text/plain, */*',
'Content-type': 'application/json'
}
});
data = await res.json();
}
【问题讨论】:
-
of modules — 这可能不是一个模块,而只是全局代码?
-
它肯定不是栈 sn-p 中的一个模块。
-
是否需要将 fetch 调用封装在 getData() 方法中?
-
它没有,因此它是评论而不是我的答案的一部分。
标签: javascript async-await es6-promise fetch-api