Возможно, вам это больше не нужно, но на случай, если кто-то еще погуглит, вот еще одно простое решение:
* обратите внимание, что это будет работать только в том случае, если выполнение этого огромного скрипта вызвано длинным итерационным циклом
- сделайте вашу петлю примерно такой:
function AsyncLoop(i, lastLoop, parameters) {
setTimeout(function () {
if (i < lastLoop) {
//whatever you wanna do here
window.console.log('iteration ' + i + ': ' + parameters[i].whatevs);
i++;
AsyncLoop(i, lastLoop, parameters);
}
}, 0);
}
- тогда назовите это как:
AsyncLoop(0, incredblyLongObjectArray.length, incredblyLongObjectArray);
Вот небольшая скрипка без использования параметров (чтобы их было легче понять) и с функцией, позволяющей определить, завершился ли желаемый сценарий:
https://jsfiddle.net/or1mrmer/