@pvvv

Async, js модули, в браузере как правильно сделать синхронизацию?

есть примитивная html страница с
<script src='some.js'></script>
с асинхронными функциями которые в результате инициализируют некие объекты.
Что именно надо вернуть из some.js и как? и сделать объекты глобальными?

Чтобы потом можно было где-нибудь дальше можно было их спокойно использовать синхронно, как будто ничего асинхронного и не было.
<script>someFunction(someObject);</script>
Ну не вешать же эту инициализацию на какой-нибудь .onload с паузой в setInterval пока не загрузится?
  • Вопрос задан
  • 196 просмотров
Пригласить эксперта
Ответы на вопрос 2
Vindicar
@Vindicar
RTFM!
Это плохая идея, я тебе скажу. Асинхронный код не от хорошей жизни асинхронный - длительные операции вешают страницу, спасибо однопоточному браузерному JS.
Так что если нужно что-то большое грузить при старте - лучше делать асинхронно, дальше использовать через callbackи, раз уж async-await не хочешь делать.
Ответ написан
@pvvv Автор вопроса
Михаил Ливач,
если внутри самого скрипта я асинхронную функцию async function init() {...}
я засуну в его же собственный document.currentScript.onload = init привязав его тем самым к загрузке первого скрипта, то тогда для всей остальной "лапши" из <script> ... </script> внутри html порядок выполнения не нарушится и изначально асинхронная init() выполнится синхронно со всеми остальными, или у этого решения есть какие-то неочевидные недостатки?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы