0

我知道我需要一个回调来解决这个问题,但我就是做错了。我尝试了几种不同的解决方案,但我会让您不必查看我的尝试。相反,我只会展示我想要完成的工作。

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
}
4

2 回答 2

0

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

于 2012-07-28T04:34:04.057 回答
0

你想做什么theCodeToRun?javascript 在单线程中执行,因此如果没有 async-stuff in theCodeToRun,则不需要任何回调。否则,您可以像这样修改代码:

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

你会很困惑为什么callback作为参数传递给func. 好的,在这种情况下,我们假设func例程做一些异步工作,比如ajax打电话。您需要将其传递callback给它,以便func在其工作完成后执行您的回调。

于 2012-07-28T04:40:03.873 回答