Для ясности, реализация JS в браузере - это , а не многопоточная .
Язык , JS, может быть многопоточным .
Однако этот вопрос здесь не применяется.
Что применимо, так это то, что getScript () является асинхронным (возвращает немедленно и получает в очередь), однако браузер будет последовательно выполнять содержимое, подключенное к DOM <script>
, поэтому ваш зависимый код JS будет видеть их загруженными последовательно. Это функция браузера, которая не зависит от потоков JS или вызова getScript ().
Если getScript () извлекает сценарии с помощью xmlHTTPRequest, setTimeout (), websockets или любого другого асинхронного вызова, то ваши сценарии не будут гарантированно выполняться по порядку. Однако ваш обратный вызов будет по-прежнему вызываться после выполнения всех сценариев, поскольку контекст выполнения вашей переменной 'len' находится в замыкании, которое сохраняет свой контекст посредством асинхронных вызовов вашей функции.