Javascript函数排序。

时间:2016-02-21 22:59:47

标签: javascript jquery

我的javascript代码中有3个函数。我想在function1和function2都执行完毕后立即调用第3个函数。

pred <- data.frame(t(matrix(pred, nrow = num.class, ncol = length(pred)/num.class)))

请注意,它们可能需要可变时间,因为函数1和2分别用于获取地理位置和一些ajax请求。

4 个答案:

答案 0 :(得分:0)

这个怎么样?

func_one() {
    // Do something
    func_two();
}

func_two() {
    // Do something
    func_three();
}

func_three() {
    // Do something
}

答案 1 :(得分:0)

有两种方法可以解决这个问题。第一种方法是创建回调函数作为现有函数的参数。

function one(param_1 .. param_n, callback) {
    var response = ... // some logic
    if (typeof callback === "function") {
        callback(response);
    }
}

第二种方法是使用Promises,如:

var p1 = new Promise(
    function(resolve, reject) {
        var response = ... //some logic
        resolve(response);
    }
} 

var p2 = new Promise( ... );

p1.then(function(response1) {
    p2.then(function(response2) {
          //do some logic
    })
})

答案 2 :(得分:0)

您可以尝试这样

var oneFinish = false;
var twoFinish = false;

function one(){
    //...
    oneFinish = true; // this value may depends on some logic
}

function two(){
    //...
    twoFinish = true; // this value may depends on some logic
}

function three(){
    setInterval(function(){
        if(oneFinish && twoFinish){
            //...
        }
    }, 3000);
}

答案 3 :(得分:0)

由于您的函数func_onefunc_two正在进行服务调用,因此您可以在上一个函数的成功回调之后调用其他函数。像

   func_one().success(function(){
       func_two().success(function(){
           func_three();
       });
   });