Цепочка Ajax и выполнить его в последовательности. Jquery Deferred

У меня есть 3 процесса, которые требуют ajax для завершения. Но это асинхронный, и он не в состоянии сделать то, что я хотел сделать ..

Скажем так:

function a(param1, param2) {
     $.post(..., function(result){
         if(result){
            b();
         } else {
            console.log("failed a");
         }
     })
}

function b() {
      $.post(..., function(result){
         if(result){
            c();
         } else {
            console.log("failed b");
         }
     })
}

function c() {
     $.post(..., function(result){
         if(result){
            console.log("successful");
         } else {
            console.log("failed b");
         }
     })
}

Я хочу, чтобы это выполнялось так

a
b
c

Этот код будет отлично работать, как вы можете видеть ... но если использовать цикл.

 var data = [{param1 : 1235, param2: 3214},  {param1 : 5432, param2: 9876}];

 $.each(data, function(k,v){
      a(v.param1, v.param2)
 });

Он не будет работать так, как ожидалось, и просто сделает:

a
a
b
b
c
c

вместо

a
b
c
a
b
c

Ответы на вопрос(5)

Ваш ответ на вопрос