Heim >Web-Frontend >js-Tutorial >jquery Deferred löst schnell das Problem der asynchronen callback_jquery

jquery Deferred löst schnell das Problem der asynchronen callback_jquery

WBOY
WBOYOriginal
2016-05-16 15:06:381202Durchsuche

jquery Deferred löst schnell das Problem asynchroner Rückrufe

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){})

//Verwandte APIs sind in 3 Kategorien unterteilt

Kategorie 1: $.when(pro1,pro1) führt mehrere Promise-Objekte in der Beziehung von und zu einem zusammen

Kategorie 2: Versprechen wird ausgelöst, um deferred.resolve([ args ] ) deferred.resolveWith( context, [ args ] ) aufzulösen

und .reject .rejectWith

ablehnen

Kontextkontext ersetzt dies und Benachrichtigung .notify .notifyWith

Kategorie 3: Reaktion auf den Auslöser deferred.done(args) bei Lösung, deferred.fail() bei Ablehnung, deferred.progress()

Unabhängig von Lösung oder Ablehnung deferred.always()


deferred.then( doneCallbacks, failCallbacks [, progressCallbacks] )


Versprechen (oder aufgeschoben, wie erhält man ein aufgeschobenes Objekt?)

var dfd = new $.Deferred(); return dfd.promise();

Gibt den aktuellen Status des Versprechens zurück

deferred.state() ausstehend (noch nicht abgeschlossen) gelöst, abgelehnt

Pipeline

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 );
});

Die obige jquery-Deferred-Schnelllösung für das Problem des asynchronen Rückrufs ist der gesamte vom Herausgeber freigegebene Inhalt. Ich hoffe, dass er Ihnen eine Referenz geben kann, und ich hoffe, dass Sie Script Home unterstützen.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn