【发布时间】:2014-02-11 03:47:54
【问题描述】:
我知道这是一个简单的问题,但我真的不知道该怎么做。我在我的代码中执行两个函数,“luxboxEngine”和“fitToScreen”,后者需要完成前者。如何告诉“fitToScreen”仅在“luxboxEngine”完成后执行?现在我有这个,它得到了预期的结果:
luxboxEngine(self);
setTimeout(fitToScreen, 1000);
...但我知道这不是一个好的解决方案。我读过回调函数,但恐怕我并没有真正了解它们是什么/如何合并它们。谢谢阅读。
编辑:正如 Sudharsan Sri 和 Brian McGinity 在下面回答的那样,回调是解决方案。这是我用来在程序中获取所需内容的代码:
luxboxEngine(self, function () {
fitToScreen();
});
在 luxboxEngine 完成后触发 fitToScreen 函数。
【问题讨论】:
-
什么是“luxboxEngine”,它是如何工作的?是同步的吗?异步?如果它是异步的并且不提供回调或 Promise 机制(它应该,请参阅文档),那么您将在没有桨的情况下陷入困境并且不得不回退到疯狂地甩动(例如 setTimeout或其他黑客)在独木舟中。
-
Self 在 Javascript 中的意思是“这个”
-
luxboxEngine 为一大堆东西制作动画,而 self 是一个作为参数传递的变量,其中包含要制作动画的图片。
-
@Ber 那么它有“完成”事件,不是吗?
-
@Ber,我刚刚更新了我的答案......作为参数传递的函数等待被调用......作为参数传递它就像定义一个函数,它只在调用时运行。
标签: javascript jquery function asynchronous callback