Обычно можно использовать await только внутри асинхронных функций . Поэтому обычно объявляется немедленно вызываемое выражение асинхронной функции, чтобы обернуть его:
(async () => {
await fetch(/* ... */)
})()или также объявить функцию, а затем вызвать ее:
const doSomething = async () => {
await fetch(/* ... */)
}
doSomething()Ожидание на высшем уровне позволит нам просто запустить
await fetch(/* ... */)
без всего этого шаблонного кода.
С оговоркой: это работает только в модулях ES.
Для одного файла JavaScript без пакета вы можете сохранить его с помощью .mjs расширение, и вы можете использовать ожидание верхнего уровня.
Оригинал: “https://flaviocopes.com/javascript-await-top-level/”