小编SJB*_*SJB的帖子

全局调用异步函数时出错:“await 仅在异步函数和模块的顶层主体中有效”?

在开始之前,我承认关于 SO 有几个问题听起来可能与我的标题相似,但是,我读到的所有问题都比我的代码复杂,并且解释似乎与我的情况不相关。

有人可以帮助我了解我的代码(下面的片段)中发生了什么导致此错误的原因:

Uncaught SyntaxError:await 仅在异步函数和模块的顶层主体中有效。

据我所知,await引起错误的在“顶级”机构中。还是说顶级机构有别的含义?多谢!

编辑以区别于此处的其他建议(类似)问题:我的问题不涉及 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();
}
Run Code Online (Sandbox Code Playgroud)

javascript async-await es6-promise fetch-api

6
推荐指数
2
解决办法
2万
查看次数

标签 统计

async-await ×1

es6-promise ×1

fetch-api ×1

javascript ×1