基本上我有此功能
async function get(url){
const response = await fetch(url);
const resData = await response.text();
return resData;
}
然后我有这个电话
let data = await get(am_url);
该代码在google chrome上可以正常运行,但是在Firefox上,我在呼叫行上收到此错误:
SyntaxError:等待仅在异步函数和异步生成器中有效
这里的问题是什么,对于我的一生,我似乎无法在Firefox上完成这项工作,也无法弄清原因
例如,如果我在firefox和google chrome上打开google.com,则转到控制台,并在chrome上运行此代码,它将运行,但是在firefox上,它将引发我提到的错误
async function get(url){
const response = await fetch(url);
const resData = await response.text();
return resData;
}
let data = await get("http://google.com");
console.log(data)
答案 0 :(得分:4)
主要是将下面的代码放入自动执行的异步函数中,或使用.then。
ng build --exclude views
应更改为
let data = await get(am_url);
或
(async()=>{ let data = await get(am_url) })
答案 1 :(得分:0)
大多数JavaScript控制台不在顶层等待。
Google Chrome开发者工具控制台是一个例外。他们在late 2017 in Chrome 62
中添加了该功能这就是为什么在Firefox中您必须兑现承诺的原因,例如使用then / catch。
答案 2 :(得分:0)
如错误所示,await
仅在内部 async
函数中起作用。
但是有2个渔获物:
await
功能之外支持async
,只是为了简化您的生活。 Chrome首先这样做,然后是Firefox最近。您的示例现在在两种浏览器中均可使用。await
函数外部使用async
,它被称为"top-level await
",因此代码很快就可以在任何地方使用。答案 3 :(得分:-2)
await在顶级代码中无效 请找到参考文献here