Раньше асинхронные операции на верхнем уровне модуля требовали сложных конструкций. С появлением
top-level await в ES-модулях (стандарт ES2022) стало возможным использовать await вне async-функций. Это позволяет модулю дождаться выполнения асинхронной задачи, прежде чем его код будет доступен для импорта в других модулях. Данный механизм упрощает инициализацию ресурсов или загрузку конфигурации.// file: config.js
// Имитируем асинхронное получение конфигурации
const response = await fetch('/api/config');
const config = await response.json();
// Экспортируем данные только после их получения
export default config;
// file: main.js
// Импорт модуля с top-level await
import config from './config.js';
// Этот код выполнится только после того,
// как промис в config.js будет разрешен.
console.log('Конфигурация загружена:', config);
function startApp() {
// Логика запуска приложения с использованием config
}
startApp();
👉 @web_craft | #frontend
