Обернуть <script> в try{} catch(){}
У меня возникла интересная идея, но я почти уверен, что сделать задуманное невозможно.
JavaScript ведь однопоточный язык, вся асинхронность, в конечном итоге, реализована лишь в "внедрении" в общий поток вызовов методов и выполнения кода. Получается, что при динамическом подключении элемента <script> код, который находится в нем, тоже будет выполняться, внедряясь в общий поток. Но выполнение кода из этого скрипта будет происходить в любом месте программы? Или только по выходу из управляющих конструкций/функций? Возможно ли, например, заставить выполниться такой код внутри конструкции try-catch и словить вывод?
Если нет, то значит возможно реализовать синхронное выполнение кода из <script>, просто задерживая выполнение кода, например, в цикле, ожидая окончания загрузки тега <script>? Или код, подгруженный в элементе script вовсе будет выполняться, хоть и в общем потоке, но невзирая на локальные области видимости и управляющие конструкции?
|