¿Cómo se ejecuta una función jQuery consecutivamente, esperando que se complete la primera?

Sé que necesito una devolución de llamada para resolver este problema, pero no puedo hacerlo bien. He probado algunas soluciones diferentes, pero te evitaré tener que mirar mis intentos. En su lugar, solo mostraré lo que estoy tratando de lograr.

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
}

preguntado el 28 de julio de 12 a las 05:07

2 Respuestas

Coloque la segunda llamada dentro de la devolución de llamada pasada a la primera.

Respondido 28 Jul 12, 05:07

que quieres hacer en theCodeToRun? javascript se ejecuta en un solo hilo, por lo que si no hay cosas asincrónicas en theCodeToRun, no necesita ninguna devolución de llamada. De lo contrario, puede modificar su código de esta manera:

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

Estarías confundido por qué callback se pasa como parámetro a func. Ok, en este caso, asumimos func es una rutina hacer algunos trabajos asincrónicos, como hacer ajax llamadas Necesitas pasar el callback para dejar func ejecute su devolución de llamada una vez que haya terminado su trabajo.

Respondido 28 Jul 12, 05:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.