jquery Deferred는 비동기 콜백 문제를 신속하게 해결합니다
function ok(name){ var dfd = new $.Deferred(); callback:func(){ return dfd.resolve( response ); } return dfd.promise(); } $.when(ok(1),ok(2)).then(function(resp1,resp2){})
//관련 API는 3가지로 분류됩니다
범주 1: $.when(pro1,pro1)은 및
관계에서 여러 Promise 객체를 하나로 병합합니다.범주 2: deferred.resolve([ args ] ) deferred.resolveWith( context, [ args ] )를 해결하기 위해 promise가 트리거됩니다
거부 .reject .rejectWith
컨텍스트 컨텍스트는 이것을 대체하고 알림 .notify .notifyWith
범주 3: 해결 시 deferred.done(args), 거부 시 deferred.fail(), deferred.progress()를 트리거하는 응답
해결 또는 거부 여부와 관계없이 deferred.always()
deferred.then( doneCallbacks, failureCallbacks [, ProgressCallbacks] )
약속(또는 지연, 지연된 객체를 얻는 방법?)
var dfd = new $.Deferred(); return dfd.promise();
Promise의 현재 상태를 반환
deferred.state() 보류 중(아직 완료되지 않음) 해결 거부됨
파이프라인
deferred.pipe( [ doneFilter ], [ failFilter ] ) var defer = $.Deferred() var filtered = defer.pipe( null, function( value ) { return value * 3; }); defer.reject( 6 ); filtered.fail(function( value ) { alert( "Value is ( 3*6 = ) 18: " + value ); });
비동기 콜백 문제에 대한 위의 jquery Deferred 빠른 해결 방법은 편집기에서 공유한 모든 내용을 참조할 수 있기를 바라며, Script Home을 지원해 주시길 바랍니다.