SeouliteLab

jQuery Deferred.resolve() 메서드의 활용 예제와 설명 본문

프로그래밍

jQuery Deferred.resolve() 메서드의 활용 예제와 설명

Seoulite Lab 2024. 4. 1. 08:29

jQuery의 Deferred.resolve() 메서드는 Deferred 객체를 성공 상태로 변경하는 데 사용됩니다. 이를 통해 비동기 작업이 성공적으로 완료되었을 때 처리할 수 있습니다. 이를 더 자세히 살펴보기 위해 다음과 같은 예제들을 제시해보겠습니다.

예제 1: Ajax 요청 성공 시 처리

var deferred = $.Deferred();

$.ajax({
  url: "https://example.com/api",
  method: "GET",
  success: function(response) {
    deferred.resolve(response);
  },
  error: function(xhr, status, error) {
    deferred.reject("Ajax 요청 실패: " + error);
  }
});

deferred.promise()
  .then(function(response) {
    console.log("성공:", response); // 성공: {data: ...}
  })
  .fail(function(errorMessage) {
    console.error(errorMessage); // Ajax 요청 실패: ...
  });

위 코드에서는 Ajax 요청이 성공하면 resolve()를 호출하여 성공 상태로 Deferred 객체를 변경합니다. 그 후에 then() 및 fail()을 사용하여 각각 성공 및 실패 시에 대한 처리를 수행합니다.

예제 2: 타임아웃 처리

var deferred = $.Deferred();

setTimeout(function() {
  deferred.resolve("작업 완료");
}, 3000);

deferred.promise()
  .then(function(message) {
    console.log(message); // 작업 완료
  });

위 코드는 setTimeout을 사용하여 3초 후에 resolve()를 호출하여 타임아웃 처리를 시뮬레이션합니다. 그 후 then()을 사용하여 작업 완료 메시지를 출력합니다.

예제 3: 조건에 따른 성공 처리

function processValue(value) {
  var deferred = $.Deferred();

  if (value === "올바른 값") {
    deferred.resolve("값이 올바름");
  } else {
    deferred.reject("값이 올바르지 않음");
  }

  return deferred.promise();
}

processValue("올바른 값")
  .then(function(message) {
    console.log(message); // 값이 올바름
  })
  .fail(function(errorMessage) {
    console.error(errorMessage); // 출력되지 않음
  });

위 코드에서는 함수 processValue()를 사용하여 값이 올바른지 확인한 후, Deferred 객체를 resolve() 또는 reject()하여 성공 또는 실패를 처리합니다.

이상으로 jQuery Deferred.resolve() 메서드의 활용 예제와 설명을 살펴보았습니다.