Часто используется, чтобы мы инициировали переменную синхронно.
const x = call_a_sync_function();
Но когда инициатор станет асинхронным, возникнет проблема.
const x = await call_an_async_function(); // SyntaxError: Unexpected reserved word
Я пробовал анонимный асинхронный инициатор, он не идеален.
let x;
(async () => x = await call_an_async_function())();
export function func() {
call(x); // x would be undefined if func() is called too early.
}
Затем я попытался экспортировать функцию в анонимный асинхронный инициатор, снова не удалось.
(async () => {
const x = await call_an_async_function();
export function func() { // SyntaxError: Unexpected token export
call(x);
}
)();
Итак, есть ли лучшее решение?