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개