在执行另一个函数之前,如何使jquery等待一个函数完成?

时间:2012-10-23 12:41:28

标签: javascript jquery ajax

function test(){
var distance=null;
       first();
       second();
       third();
alert(distance);//it shows null always because it take 2 second to complete.

}
 function first(tolat, tolon, fromlat,fromlon){

// calulating road distance between two points on the map using any other distance caluculating apis. 

distance=dis;  // update the value of distance but it takes 2 second to complete.

}
 function second(){}
 function third(){}

我的代码中有这种情况,现在很多时间函数三在第一次和第二次完成执行之前被调用,距离值没有更新。

2 个答案:

答案 0 :(得分:17)

利用回调:

function first(tolat, tolon, fromlat, fromlon, callback) {
     if (typeof(callback) == 'function') {
        callback(distance);
     }
}

function second() { }
function third() { }

first("vartolat", "vartolon", "varfromlat", "varfromlon", function(distance) {
    alert(distance);
    second();
    third();
});

答案 1 :(得分:9)

检查jQuery when() 方法。它会帮助你