2012-07-28 47 views
0

我知道我需要一个回调来解决这个问题,但我只是无法做到。我已经尝试了一些不同的解决方案,但是我不会去看看我的尝试。相反,我只会展示我想要完成的事情。你如何运行一个jQuery函数背对背,等待第一个完成?

theCodeToRun('123', '1'); 
//Wait for it to complete... 
theCodeToRun('123', '0'); 

function theCodeToRun(myID, exitEarly){ 
    //Do some stuff (using myID) 
    if(exitEarly == 1){ 
     return false; //Exit 
    } 
    //Do some more stuff 
} 

回答

0

将第二个调用放在传递给第一个的回调中。

0

想要在theCodeToRun中做什么? javascript在单线程中执行,因此如果在theCodeToRun中没有异步东西,则不需要任何回调。否则,你可以修改你的代码是这样的:

function theCodeToRun(func, flag, callback){ 
    if(flag){ 
     callbck(); 
    } 
    func(callback); 
} 

为什么callback作为参数传递给func你会感到困惑。好的,在这种情况下,我们假设func是一个例程,可以执行一些异步作业,例如拨打ajax调用。您需要将callback传递给它,以便func完成您的回调。

相关问题