jQuery.Deferred() 정보
jQuery jQuery.Deferred()본문
jQuery.Deferred()
설명 : 다중 콜백을 콜백 대기열에 등록하고, 콜백 대기열을 호출하고, 동기 또는 비동기 함수의 성공 또는 실패 상태를 중계하는 메소드로 체인 가능 유틸리티 객체를 반환하는 팩토리 함수입니다.
jQuery.Deferred()공장은 새로운 생성 deferred객체를.
jQuery.Deferred메소드는 메소드가 리턴하기 전에 호출되고 새로운 전달되는 옵션 기능, 전달 될 수 deferred모두 같은 객체를 this객체와 함수의 첫 번째 인수로합니다. 호출 된 함수는 deferred.then()예를 들어 콜백을 첨부 할 수 있습니다 .
지연된 개체는 보류 상태 에서 시작됩니다 . 모든 콜백으로 객체에 추가 deferred.then(), deferred.always(), deferred.done(), 또는 deferred.fail()나중에 실행하기 위해 대기하고 있습니다. 지연된 상태 를 호출 deferred.resolve()하거나 deferred.resolveWith()전환하여 확인 된 상태로 즉시 실행합니다 doneCallbacks. Deferred를 호출 deferred.reject()하거나 거부 상태 deferred.rejectWith()로 전환하고 설정된 모든 것을 즉시 실행합니다 . 객체가 해결되거나 거부 된 상태가되면 해당 상태로 유지됩니다. 콜백은 여전히 해결되거나 거부 된 Deferred에 추가 될 수 있습니다. 즉, 즉시 실행됩니다.failCallbacks
jQuery Deferred를 사용한 향상된 콜백
JavaScript에서는 함수 내에서 호출되는 콜백을 선택적으로 허용하는 함수를 호출하는 것이 일반적입니다. 예를 들어, jQuery 1.5 이전 버전에서는 jQuery.ajax()성공, 오류 및 ajax 요청 완료시 가까운 시일 내에 잠시 호출 될 수있는 콜백 (accept callback) 과 같은 비동기 프로세스가 있었습니다.
jQuery.Deferred()콜백을 관리하고 호출하는 방법에 대한 몇 가지 개선 사항을 소개합니다. 특히 jQuery.Deferred()다중 콜백을 제공하는 유연한 방법을 제공하며 원래 콜백 디스패치가 이미 발생했는지 여부에 관계없이 이러한 콜백을 호출 할 수 있습니다. jQuery Deferred는 CommonJS Promises / A 디자인을 기반으로합니다 .
Deferred를 이해하는 한 가지 모델은 이것을 체인 인식 함수 래퍼라고 생각하는 것입니다. deferred.then(), deferred.always(), deferred.done(), 및 deferred.fail()방법이라고 할 수있는 기능을 지정하고 deferred.resolve(args)또는 deferred.reject(args)방법이 제공 한 인수를 사용하여 함수 "전화". Deferred가 해결되거나 거부되면 해당 상태로 유지됩니다. deferred.resolve()예를 들어 두 번째 호출 은 무시됩니다. deferred.then()예를 들어 Deferred가 해결 된 후에 더 많은 함수가 추가되면 이전에 제공된 인수를 사용하여 즉시 호출됩니다.
같은 jQuery를 API 호출은 이연 또는 약속 호환 개체를 반환 대부분의 경우에 jQuery.ajax()또는 jQuery.when(), 당신은 단지 사용하기를 원할 것입니다 deferred.then(), deferred.done()그리고 deferred.fail()의 이연 큐에 콜백을 추가하는 방법을. Deferred를 생성 한 API 호출 또는 코드의 내부는 호출 deferred.resolve()되거나 deferred.reject()지연되는 시점에서 적절한 콜백을 실행합니다.
0
댓글 0개