2013-06-20 18 views
0

如何在JavaScript中运行序列功能序列功能: 我有4个功能是这样的:如何运行的JavaScript

function myfunction() 
{ 
    callfunction1(); 
    callfunction2(); 
} 

在callfunction1:

function callfunction1() 
{ 
    callfunction3(); 
} 

我的问题是在“myfunction的“当我呼叫”callfunction1“时,callfunction1运行并且它调用”callfunction3“,但是当”callfunction3“没有完成时,”callfunction2“正在运行。无论如何要等待”callfunction3“完成然后”callfunction2“运行?

+0

它被称为JavaScript回调函数。阅读:http://www.impressivewebs.com/callback-functions-javascript/ – Raptor

回答

3

JavaScript是单线程的,callfunction2只会在callfunction3完成后才会运行。然而,如果callfunction3包含一些AJAX或其他异步操作,那么总是会发生在callfunction2之后(因为是单线程的东西,它不能在同步填充完成之前启动异步回调)。任何依赖于异步函数结果的东西都必须在函数本身中,或者由函数调用。

+0

“由所述函数调用”,你能解释给我吗? – user2265231

+0

对'callfunction2'的调用必须位于异步回调中。 –

+0

好的,谢谢你,我会试试看。 – user2265231