Если вы используете python 3 или выше,
>>> list(bytes(b'test'))
[116, 101, 115, 116]
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');
});
}
await
также может использоваться для функции, которая возвращаетPromise
. Фактическиasync
возвращает функциюpromise
. Поэтому я смутился. – João Pimentel Ferreira 9 January 2018 в 19:03await
всегда должен быть вставлен в функцииasync
. Согласно док. выражениеawait
заставляет выполнение функцииasync
приостанавливать до выполнения или отклоненияPromise
и возобновить выполнение функцииasync
после выполнения. При возобновлении значение выраженияawait
соответствует значениюPromise
. Поэтому я никогда не могу иметь объявление верхнего рычагаawait
. – João Pimentel Ferreira 9 January 2018 в 19:21