2014-04-10 2 views
0

일부 아약스 전화를 걸고 일부 또는 전부를 404로 예상합니다. 문제는 예상 된 404를 얻을 때 .done()이 실행되지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?jQuery(). 완료() 실행하지 않음

$.each(data, function (index, item) { 
    promises.push(GetReservation(item.UniqueId, 
     apiRoot, 
     function (data2) { 
      //DO stuff 
     }, 
     function (x, y, z) { 
      if (x.status == 404) { 
       //OK!!! i expected that! 
      } 
     })); 
}) 
$.when.apply($, promises).done(function() { 
    setButtons(box, c) 
}); 
+1

약속이 여러 개있을 때 약속드립니다. – naomik

+0

고맙습니다 ... 고맙습니다 ... 내 코드에서이를 바로 잡을 것입니다. – Leonardo

답변

1

$ .when 반환 약속 때문에, 당신은 항상 대신 의이 일을 호출 할 수 있습니다 : 여기

는 코드입니다. 그것은 응답 성공에 관계없이 콜백을 호출합니다.

$.when.apply($, promises).always(function() { 
    setButtons(box, c) 
}); 
+0

"성공했는지 여부에 관계없이 완료되었거나 실패했을 때"라고 생각했습니다. – Leonardo

+0

@Leonardo : 아니요, done은 성공 처리기 만 연결합니다. – Bergi

관련 문제