jQuery Deferred 콜백 최단 자습서
다음은 jQuery Api 1.7에서 발췌한 내용입니다.
function asyncEvent() {
var dfd = new jQuery.Deferred();
// Resolve after a random interval
setTimeout(function () {
dfd.resolve("hurray"); // | done
}, Math.floor(400 + Math.random() * 2000));
// Reject after a random interval
setTimeout(function () {
dfd.reject("sorry"); // | fail
}, Math.floor(400 + Math.random() * 2000));
// Show a "working..." message every half-second
setTimeout(function working() {
if (dfd.state() === "pending") {
dfd.notify("working... "); // progress
setTimeout(working, 500);
}
}, 1);//
// Return the Promise so caller can't change the Deferred
return dfd.promise(); // :reject,resolve,notify
}
asyncEvent().done(function () {
console.log(' ');
}).fail(function () {
console.log(' ');
}).always(function () {
console.log(' , ');
}).progress(function () {
console.log('you got a message~');
});
사용하기 편리한 함수도 있습니다: $.when (dfd1, [dfd2, [dfd3]), 그가 되돌아온 것은 Deferrd 대상이다.전송된 모든 dfd가 성공한 후에도done 이벤트를 터치할 수 있습니다.임의의 dfd가 실패하면fail을 즉시 터치합니다
var a=$.Deferred();
var b=$.Deferred();
$.when(a,b)
.fail(function(){console.log(' ');})
.done(function(){console.log(' ');});
b.resolve()
a.resolve()
// :
var a=$.Deferred();
var b=$.Deferred();
$.when(a,b)
.fail(function(){console.log(' ');})
.done(function(){console.log(' ');});
b.reject()
// :
then은 빠른 방법: dfd.then(doneCallback,failCallback,[progressCallback]);
그리고: 모든 트리거 방법에서 하나의 매개 변수를 전달할 수 있다
// Attach a done, fail, and progress handler for the asyncEvent
$.when(asyncEvent()).then(function (status) { // ,done
console.log(status + ', things are going well');
}, function (status) { // ,fail
console.log(status + ', you fail this time');
}, function (status) { // progress 。1.7
$("body").append(status);
});
마지막으로 하이라이트 코드:
http://p2world.iteye.com/blog/1405227
http://p2world.iteye.com/blog/1405238
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
jQuery 전후 예이 기사에서는 jquery after() 및 before() 메소드의 예를 볼 것입니다. before() 메서드는 선택한 요소 앞에 지정된 콘텐츠를 삽입합니다. after() 메서드는 선택한 요소 뒤에 지정된 콘텐츠...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.