jquery,javascript和回调计时

时间:2010-05-18 13:56:39

标签: javascript ajax callback

var blah = Some.Thing(data, function(a,b) {
  // code here 
});

Some.Thing = function(data, callback) {

  if(...) {
     var a = Other.Thing(data, function() {
       // code here

        callback();
        return;
     });    
  }

  callback();
};

我的问题是,//code here之后的部分只会在其他所有内容之后触发 并且它们的回调会被触发吗?

//code here部分似乎已经触发,似乎存在一些时间问题。

2 个答案:

答案 0 :(得分:1)

你实际上并没有在callback的任何地方使用Some.Thing,所以不可能这么说。但是,通常,除非实际调用 callback,否则其中的代码不会被执行。它被评估(解析),但不被执行。

答案 1 :(得分:0)

从您提供的代码中无法判断 方法callback可以在同一堆栈上被称为,或者由于使用了ajax或setTimeout(异步),它的执行可能是延迟

如果被延迟,那么只有在main方法完成并且线程返回空闲状态后才会调用它。