Почему не стоит работать с асинхронным в Firefox - PullRequest
0 голосов
/ 27 декабря 2018

в основном у меня есть эта функция

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, я получаю эту ошибку наcall line:

SyntaxError: await действителен только в асинхронных функциях и асинхронных генераторах

в чем здесь проблема, на мой взгляд, я не могу заставить эту работу работать в firefox ине могу понять, почему

, например, если я открываю google.com в firefox и google chrome, то я иду на консоль и ставлю этот код на 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)

Ответы [ 3 ]

0 голосов
/ 27 декабря 2018

В main либо поместите приведенный ниже код в самовыполняющуюся асинхронную функцию, либо используйте .then.

let data = await get(am_url);

следует изменить на

(async()=>{ let data = await get(am_url) })()

или

get(am_url).then( data => ....)
0 голосов
/ 06 марта 2019

Большинство консолей JavaScript не ожидают на верхнем уровне.

Консоль Google Chrome Developer Tools является исключением.Они добавили функцию в конце 2017 года в Chrome 62

Вот почему в Firefox вы должны разрешить обещание, например с помощью then / catch.

0 голосов
/ 27 декабря 2018

await не будет работать в коде верхнего уровня, пожалуйста, найдите ссылку здесь

...