【发布时间】:2019-05-25 04:16:46
【问题描述】:
基本上我有这个功能
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: await 仅在异步函数和异步生成器中有效
这里有什么问题,就我的一生而言,我似乎无法在 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)
【问题讨论】:
-
听起来像
data可能不在async函数中? -
data 不是一个函数,它应该保存响应的文本内容,我尝试从控制台以及从 html 页面的脚本文件中执行它,同样的问题, 适用于 chrome 但不适用于 Firefox
-
你为什么要等待 response.text() 顺便说一句?
-
@AakashVerma 因为
Response.text()返回一个Promise? -
我没有说
data是一个函数(显然不是),我说它不是 in 一个async函数 - 你能发布完整的代码,所以我们有一个minimal reproducible example 来弄清楚?
标签: javascript async-await fetch