1

同期する必要がある大量の非同期呼び出しがあります。したがって、jquerys 遅延オブジェクトを使用したかったのですが、約 62000 個を超えるプロミスがある場合に "then" 関数を呼び出すと、残念ながら Chrome 25 と IE 9 で "Uncaught RangeError: Maximum call stack size exceeded" がスローされます。 .

var promises= []
for(var i=0; i < 63000;++i) {
    var def = $.Deferred();
    promises.push(def.promise());           
    def.resolve();
}

var regEntries = $.when.apply(null, promises);
regEntries.then(function() {
    console.log('done');
});

ここでも試すことができます: http://jsfiddle.net/f8LPG/

なぜこれが起こるのか、またどのようにすればより多くの遅延オブジェクトを使用できるのか分かりますか?

4

0 に答える 0