Javascript: aguarde a função no loop concluir a execução antes da próxima iteração

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


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

}

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

É o que acontece quando clico no botão Enviar de um formulário de registro.

Ordem de execução que eu quero:


setID (1);
checkField (1); // aguarde até que isso termine
setID (2);
checkField (2);
setId (3);
checkField (3);
....
declaração if

Ordem de execução que recebo:


para loop indo de i = 1 a i = 14
declaração if
checkField (i) s em ordem aleatória

Problema: $ ('# pass_fail'). val () tem um valor padrão de 'pass'. No entanto, através do loop, checkField (i) pode alterar seu valor para 'fail'. Porém, como na realidade a instrução if é executada antes do checkField (i) s, o valor de $ ('# pass_fail') sempre acaba sendo 'pass' e o 'do something' sempre é executado.

Como espero o checkField (i) concluir a execução antes de passar para a próxima iteração do looP? Agradeço antecipadamente!

questionAnswers(2)

yourAnswerToTheQuestion