等到功能完成调用其他功能

时间:2014-10-16 00:11:50

标签: javascript callback

我有一个调用另一个function2的function1。 Function2有一个for循环,在其中调用function3。我想在对函数3的所有3次调用完成后执行一个语句。我如何实现它?

function1: function(){
    function2(args, doSomething(returnValue) {
        if(returnValue == true){
            // do something here
        }
    });
}

function2: function(args, callback){
    for(var i = 0; i < 3; i++){
        function3(args);
    }

    // if function3 completed all 3 times
    callback(true);
}

1 个答案:

答案 0 :(得分:1)

我认为你需要做的就是创建一个变量,每当for循环在function2()中运行时递增,并检查它是否在for循环之外足够高。

var timesCalled = 0
function1: function(){
    function2(args, doSomething(returnValue) {
        if(returnValue == true){
            // do something here
        }
});
}
function2: function(args, callback){
    for(var i = 0; i < 3; i++){
        function3(args);
        timesCalled++
    }

    if (timesCalled >= 2){// if function3 completed all 3 times
        callback(true);
    }
}

如果你想确保function3做你想做的3次,那么把增量放在function3中。我希望这有帮助!