jquery Deferred résout rapidement le problème des rappels asynchrones
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){})
//Les API associées sont divisées en 3 catégories
Catégorie 1 : $.when(pro1,pro1) fusionne plusieurs objets de promesse en un seul dans la relation de et
Catégorie 2 : la promesse est déclenchée pour résoudre deferred.resolve([ args ] ) deferred.resolveWith( context, [ args ] )
et rejeter .reject .rejectWith
le contexte contextuel remplace ceci et la notification .notify .notifyWith
Catégorie 3 : Réponse au déclencheur deferred.done(args) en cas de résolution, deferred.fail() en cas de rejet, deferred.progress()
Indépendamment de la résolution ou du rejet différé.always()
deferred.then ( doneCallbacks, failCallbacks [, progressCallbacks] )
Promesse (ou différé, comment obtenir un objet différé ?)
var dfd = new $.Deferred(); return dfd.promise();
Renvoyer l'état actuel de la promesse
deferred.state() en attente (pas encore terminé) résolu rejeté
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 ); });
La solution rapide jquery Deferred ci-dessus au problème du rappel asynchrone est tout le contenu partagé par l'éditeur. J'espère qu'il pourra vous donner une référence et j'espère que vous soutiendrez Script Home.