1

我有大量需要同步的异步调用。因此,我想使用 jquerys deferred objects,但不幸的是,当我调用“then”函数时,Chrome 25 和 IE 9 中会抛出“Uncaught RangeError:Maximum call stack size exceeded”(如果有超过 62000 个 promise) .

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