>  기사  >  웹 프론트엔드  >  jquery Deferred는 비동기 callback_jquery 문제를 신속하게 해결합니다.

jquery Deferred는 비동기 callback_jquery 문제를 신속하게 해결합니다.

WBOY
WBOY원래의
2016-05-16 15:06:381158검색

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을 지원해 주시길 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.