如何在完成另一个函数后才执行javascript / jquery函数?

时间:2014-02-11 03:47:54

标签: javascript jquery function asynchronous callback

我知道这是一个简单的问题,但我真的不知道该怎么做。我正在我的代码中执行两个函数,'luxboxEngine'和'fitToScreen',后者需要完成前者。如何告诉'fitToScreen'仅在'luxboxEngine'完成后执行?现在我有了这个,它得到了预期的结果:

luxboxEngine(self);
setTimeout(fitToScreen, 1000);

......但我知道这不是一个好的解决方案。我已经阅读了关于回调函数的内容,但我担心我并没有真正了解它们是什么/如何将它们合并。谢谢阅读。

编辑:所以当Sudharsan Sri和Brian McGinity在下面回答时,回调就是解决方案。这是我用来获得程序中所需内容的代码:

    luxboxEngine(self, function () {
       fitToScreen(); 
    });

在luxboxEngine完成后触发fitToScreen函数。

3 个答案:

答案 0 :(得分:1)

像回调一样?将函数作为参数传递然后调用它:

 fitToScreen( function(){luxBoxEginie();}  );

 function fitToScreen( cb ) {
  //// do somethings
  cb()
 }

luxboxEngine(self, function (){ fitToScreen(); });

function luxboxEngine( s, cb)} {
 // do somethings
 cb();  //execute the callback function
}

fitToScreen()作为参数传递给luxboxEngine()。 fitToScreen()等待执行,并且仅在执行:cb()

时运行

答案 1 :(得分:1)

使用回调:

luxboxEngine(self , function() { fitToScreen(); }); 

答案 2 :(得分:0)

luxboxEngine(self); //Executes, returns undefined, nothing happens with return value
fitToScreen(); //The first one is done by the time we get here