Асинхронный / Await. Ошибка анализа: ожидание - это зарезервированное слово. JS [дублировать]

Если вы используете python 3 или выше,

>>> list(bytes(b'test'))
[116, 101, 115, 116]
9
задан Jonathan.Brink 21 May 2017 в 23:11
поделиться

1 ответ

await действует только внутри функций async, поэтому вам понадобится, например, async IIFE , чтобы обернуть ваш код:

void async function() {
  let value = await getValueAsync();
  console.log(value);
}();

И, поскольку возвращаемые значения из функций async обернуты обещанием, вы можете сократить getValueAsync до просто этого:

async function getValueAsync() {
  return 'foo';
}

Или не помечать его как async и возвращать обещание от него :

function getValueAsync() {
  return new Promise(function(resolve) {
    resolve('foo');
  });
}
9
ответ дан robertklep 19 August 2018 в 04:48
поделиться
  • 1
    но согласно документации MDN , функция await также может использоваться для функции, которая возвращает Promise. Фактически async возвращает функцию promise. Поэтому я смутился. – João Pimentel Ferreira 9 January 2018 в 19:03
  • 2
    ОК, я понял, await всегда должен быть вставлен в функции async. Согласно док. выражение await заставляет выполнение функции async приостанавливать до выполнения или отклонения Promise и возобновить выполнение функции async после выполнения. При возобновлении значение выражения await соответствует значению Promise. Поэтому я никогда не могу иметь объявление верхнего рычага await. – João Pimentel Ferreira 9 January 2018 в 19:21
Другие вопросы по тегам:

Похожие вопросы: