jQuery에서 모든 .done 또는 .fail 핸들러 이후에 .always 핸들러를 어떻게 실행할 수 있습니까? 예를 들어jQuery 모든 첨부 된 .done/.fail 핸들러 이후의 .always 핸들러
, 내가 이렇게 연기 반환하는 함수가있는 경우 :
function getDeferred() {
return $.ajax({
url: '/test.json',
type: 'GET',
dataType: 'json',
cache: false
}).fail(function (jqXHR, textStatus, errorThrown) {
alert('fail !');
}).always(function (jqXHR, textStatus, errorThrown) {
alert('always !');
});
}
내가 글로벌 .always 핸들러가이 같은 특정되는 .done 핸들러를 첨부 할 수 있습니다
getDeferred().done(function (data, textStatus, jqXHR) {
alert('done !');
});
을
jQuery에서 핸들러는 우리가 첨부 한 순서대로 호출되는 것처럼 보입니다. 내 경우에는. 항상 전에.
[jQuery .always] (https://api.jquery.com/deferred.always/) 문서 ▶' Deferred가 해결되거나 거절되면 콜백은 제공된 인수를 사용하여 추가 된 순서대로 실행됩니다''.Done' 전에'geDeferred()'가 해결할 때' getDeferred()'를 먼저 호출해야합니다. – Nope
그것은 합법적 인 것처럼 보인다! 그러나 내가하고 싶은 일을하는 어떤 트릭이 있습니까? –