deferred.then (doneFilter [, failFilter] [, progressFilter]) > 개발자팁

개발자팁

개발과 관련된 유용한 정보를 공유하세요.
질문은 QA에서 해주시기 바랍니다.

deferred.then (doneFilter [, failFilter] [, progressFilter]) 정보

jQuery deferred.then (doneFilter [, failFilter] [, progressFilter])

본문

deferred.then (doneFilter [, failFilter] [, progressFilter])


설명 : Deferred 객체가 확인, 거부 또는 진행 중일 때 호출 할 처리기를 추가합니다.



모든 시그니처에 대해 null해당 유형의 콜백 이 필요하지 않은 경우 인수가 될 수 있습니다 . 대안 적으로, 사용 .done(), .fail()또는 .progress()상태 또는 값을 필터링하지 않고 콜백의 한 유형을 설정.


jQuery를 1.8으로 의 deferred.then()방법은 지금은 사용되지 않는 대신, 상태 및 기능을 통해 지연된의 값을 필터링 할 수있는 새로운 약속을 반환하는 deferred.pipe()방법을. doneFilter및 failFilter기능은 원래의 연기 해결 / 거부 상태와 값을 필터링 할 수 있습니다. progressFilter기능은 연기의 원본에 대한 호출 필터 notify나 notifyWith방법을. 이러한 필터 함수는 약속 .done()또는 .fail()콜백에 전달할 새 값을 반환하거나 해결 된 / 거부 된 상태 및 값을 약속의 콜백에 전달하는 다른 관찰 가능 객체 (지연된 약속, 약속 완료 등)를 반환 할 수 있습니다. 사용 된 필터 함수가null또는 지정되지 않은 경우 원본과 동일한 값으로 약속이 해결되거나 거부됩니다.


콜백은 추가 된 순서대로 실행됩니다. deferred.thenPromise를 반환하기 때문에 Promise 객체의 다른 메소드는 추가 .then()메소드를 포함하여이 객체에 연결될 수 있습니다 .


예 :

이 jQuery.get메소드는 Deferred 객체에서 파생 된 jqXHR 객체를 반환하기 때문에이 .then메소드를 사용하여 핸들러를 연결할 수 있습니다 .



$.get( "test.php" ).then(

  function() {

    alert( "$.get succeeded" );

  }, function() {

    alert( "$.get failed!" );

  }

);

해결 값 필터링 :



<!doctype html>

<html lang="en">

<head>

  <meta charset="utf-8">

  <title>deferred.then demo</title>

  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>

</head>

<body>

 

<button>Filter Resolve</button>

<p></p>

 

<script>

var filterResolve = function() {

  var defer = $.Deferred(),

    filtered = defer.then(function( value ) {

      return value * 2;

    });

 

  defer.resolve( 5 );

  filtered.done(function( value ) {

    $( "p" ).html( "Value is ( 2*5 = ) 10: " + value );

  });

};

 

$( "button" ).on( "click", filterResolve );

</script>

 

</body>

</html>

추천
0

댓글 0개

전체 5,352
개발자팁 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT