Javascript: espere a que la función en el bucle termine de ejecutarse antes de la próxima iteración

$(function() {
$("#submit").click(function() {


for (var i=1; i<=14; i++)
{
        setID(i); 
        checkField(i);

}

if ($('#pass_fail').val() != "fail")
{ 
//do something
}

Esto es lo que sucede cuando hago clic en el botón Enviar de un formulario de registro.

Orden de ejecución que quiero:


setID (1);
checkField (1); // espera a que esto termine
setID (2);
checkField (2);
setId (3);
checkField (3);
....
si la declaración







Orden de ejecución me sale:


para el bucle que va de i = 1 a i = 14
si la declaración
checkField (i) s en orden aleatorio


Problema: $ ('# pass_fail'). val () tiene un valor predeterminado de 'pass'. Sin embargo, a través del bucle, checkField (i) podría cambiar su valor a 'fail'. Pero dado que en realidad la instrucción if se ejecuta antes de checkField (i) s, el valor de $ ('# pass_fail') siempre termina siendo 'pass' y siempre se ejecuta 'do algo'.

¿Cómo espero que checkField (i) termine de ejecutarse antes de pasar a la siguiente iteración del bucle? ¡Gracias de antemano!