Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何仅在完成另一个函数后执行javascript/jquery函数?_Javascript_Jquery_Function_Asynchronous_Callback - Fatal编程技术网

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

如何仅在完成另一个函数后执行javascript/jquery函数?,javascript,jquery,function,asynchronous,callback,Javascript,Jquery,Function,Asynchronous,Callback,我知道这是一个简单的问题,但我真的不知道怎么做。我在代码中执行两个函数,“luxboxEngine”和“fitToScreen”,后者需要完成前者。如何让“fitToScreen”仅在“luxboxEngine”完成后执行?现在我有了这个,它得到了想要的结果: luxboxEngine(self); setTimeout(fitToScreen, 1000); …但我知道这不是个好办法。我读过关于回调函数的书,但恐怕我真的不知道它们是什么/如何合并它们。谢谢你的阅读 编辑:正如Sudharsa

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

luxboxEngine(self);
setTimeout(fitToScreen, 1000);
…但我知道这不是个好办法。我读过关于回调函数的书,但恐怕我真的不知道它们是什么/如何合并它们。谢谢你的阅读

编辑:正如Sudharsan Sri和Brian McGinity在下面回答的那样,回调是解决方案。以下是我用来在程序中获取所需内容的代码:

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

在luxboxEngine完成后触发fitToScreen函数。

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

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

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

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

使用回调:

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

什么是“luxboxEngine”,它是如何工作的?它是同步的吗?异步的?如果它是异步的,并且没有提供回调或承诺机制(它应该提供,请参阅文档),那么你就没有桨了,只能在独木舟上疯狂地挥舞(例如setTimeout或其他黑客攻击)。Self在JavascriptluxboxEngine中的意思是“这个”,它可以为一大堆东西设置动画,self是一个作为参数传递的变量,其中包含一张要设置动画的图片。@Ber然后它有“完成”事件,没有?@Ber,我刚刚更新了我的答案。。。正在作为参数传递的函数等待调用。。。将其作为参数传递就像定义一个函数,它只在被调用时运行。是的,回调是解决方案。欢迎光临,这是我的荣幸
luxboxEngine(self , function() { fitToScreen(); });