使用jQuery deferred、javascript确定循环中触发的可变数量异步进程的解决方案

使用jQuery deferred、javascript确定循环中触发的可变数量异步进程的解决方案,javascript,jquery,loops,asynchronous,jquery-deferred,Javascript,Jquery,Loops,Asynchronous,Jquery Deferred,当循环长度可变时,我对如何将jQuery$.deferred对象应用于异步进程的循环感到有些困惑。下面是我目前的尝试。因为循环中的进程是异步的,所以循环将完成,main中的延迟对象将在循环中触发的所有异步进程解析之前解析。另一方面,我将在异步过程中从延迟对象中获得一个可变数量的解析,当每个解析完成时,留下相当多的计算来确定它们何时全部完成 function asyncProcess(someVariable) { var dfd = $.Deferred(); //Some Co

当循环长度可变时,我对如何将jQuery$.deferred对象应用于异步进程的循环感到有些困惑。下面是我目前的尝试。因为循环中的进程是异步的,所以循环将完成,main中的延迟对象将在循环中触发的所有异步进程解析之前解析。另一方面,我将在异步过程中从延迟对象中获得一个可变数量的解析,当每个解析完成时,留下相当多的计算来确定它们何时全部完成

function asyncProcess(someVariable) {
    var dfd = $.Deferred();
    //Some Code
    dfd.resolve();
    return dfd.promise();
}


function main() {
    var dfd = $.Deferred();
    for (i = 0; i < variableInteger; i++) {
        asyncProcess(someVariable);
        dfd.resolve();
    }
    return dfd.promise();
}
函数异步进程(someVariable){
var dfd=$.Deferred();
//一些代码
解析();
返回dfd.promise();
}
函数main(){
var dfd=$.Deferred();
对于(i=0;i
有人知道这种情况通常是如何处理的吗?

用于创建一个新的承诺,该承诺将在所有承诺得到解决或任何一个承诺被拒绝时得到解决

function asyncProcess(someVariable) {
    var dfd = $.Deferred();
    //Some Code
    dfd.resolve();
    return dfd.promise();
}


function main() {
    var prmis = [];
    for (i = 0; i < variableInteger; i++) {
        prmis.push(asyncProcess(someVariable));
    }
    return $.when.apply($, prmis);
}
函数异步进程(someVariable){
var dfd=$.Deferred();
//一些代码
解析();
返回dfd.promise();
}
函数main(){
var-prmis=[];
对于(i=0;i
这看起来是一个很有前途的方法,但我还没有找到它的工作。你确定我在main()中不需要延迟对象吗?谢谢你的帮助!