SeouliteLab

jQuery의 deferred.always() 메서드 본문

프로그래밍

jQuery의 deferred.always() 메서드

Seoulite Lab 2024. 3. 31. 00:14

jQuery의 deferred.always() 메서드는 비동기 작업의 성공 또는 실패 여부와 상관없이 항상 실행되는 콜백 함수를 등록하는 데 사용됩니다. 이 메서드를 사용하면 비동기 작업의 완료를 처리하고 후속 작업을 실행할 수 있습니다. 이제 deferred.always() 메서드에 대해 자세히 알아보고 다양한 예제를 살펴보겠습니다.

deferred.always() 메서드 이해하기

deferred.always() 메서드는 비동기 작업의 성공 또는 실패 여부와 관계없이 항상 실행되는 콜백 함수를 등록합니다. 이를 통해 비동기 작업의 완료를 감지하고 후속 작업을 수행할 수 있습니다.

구문:

deferred.always(alwaysCallback);
  • alwaysCallback: 비동기 작업 완료 시 항상 실행되는 콜백 함수입니다.

이제 몇 가지 예제를 통해 이 메서드의 사용법을 살펴보겠습니다.

예제:

예제 1: 성공 또는 실패 후 항상 실행

$.ajax({
  url: "example.php",
  success: function() {
    console.log("요청 성공");
  },
  error: function() {
    console.log("요청 실패");
  }
}).always(function() {
  console.log("항상 실행");
});

출력:

// 성공 시
요청 성공
항상 실행

// 실패 시
요청 실패
항상 실행

예제 2: Deferred 객체 사용

var deferred = $.Deferred();

deferred.done(function() {
  console.log("완료");
}).fail(function() {
  console.log("실패");
}).always(function() {
  console.log("항상 실행");
});

deferred.resolve(); // 성공
// deferred.reject(); // 실패

출력:

// 성공 시
완료
항상 실행

// 실패 시
실패
항상 실행

예제 3: 다중 비동기 작업 후 항상 실행

var deferred1 = $.ajax({ url: "example1.php" });
var deferred2 = $.ajax({ url: "example2.php" });

$.when(deferred1, deferred2).then(
  function() {
    console.log("모든 요청 성공");
  },
  function() {
    console.log("요청 중 하나라도 실패");
  }
).always(function() {
  console.log("항상 실행");
});

출력:

// 모든 요청 성공 시
모든 요청 성공
항상 실행

// 요청 중 하나라도 실패 시
요청 중 하나라도 실패
항상 실행

deferred.always() 메서드를 사용하면 비동기 작업의 완료 여부와 관계없이 항상 실행되는 콜백 함수를 등록할 수 있습니다. 이를 통해 비동기 작업의 완료를 감지하고 후속 작업을 쉽게 처리할 수 있습니다.