Table des matières
List
Description
语法
参数说明
返回值
示例&说明
Un objet différé démarre dans un état suspendu. Toutes les fonctions de rappel ajoutées à cet objet à l'aide de deferred.then(), deferred.always(),
deferred.done() ou deferred.fail() sont mises en file d'attente pour exécution.
" >Syntaxe

$.Deferred([beforeStart])

Paramètre DescriptionbeforeStartType de fonction Une fonction appelée avant le retour du constructeur🎜🎜🎜

Valeur de retour🎜🎜fonction d'usine jQuery.Deferred() Créer une nouvelle objet différé. 🎜
🎜🎜🎜deferred.always()🎜🎜🎜🎜Lorsque l'objet Deferred est accepté ou rejeté, le gestionnaire ajouté par deferred.always() est appelé. 🎜🎜Astuce : Le paramètre peut être une fonction ou un tableau de fonctions. Puisque deferred.always() renvoie un objet Deferred, il peut être connecté à d'autres méthodes d'objet différé (Ceci fait référence aux méthodes qui peuvent continuer à appeler des objets Deferred), y compris des méthodes .always supplémentaires. Lorsqu'un objet Deferred est résolu ou rejeté, les fonctions de rappel ajoutées via deferred.always() sont exécutées dans l'ordre dans lequel elles ont été ajoutées et peuvent être transmises comme arguments aux méthodes suivantes : solve , rejet , solveWith ou rejetWith . 🎜

Syntaxe🎜🎜🎜deferred.always( alwaysCallbacks [, alwaysCallbacks ] )🎜🎜🎜🎜jQuery1.6 a ajouté cette fonction🎜🎜

Paramètres Explication 🎜🎜 Paramètres 🎜🎜🎜🎜🎜🎜 Expliquez que 🎜🎜🎜🎜🎜🎜 说 Type facultatif/fonction 🎜 Une fonction ou un tableau de fonctions, lorsque l'objet DEFERRED (délai) est résolu ou s'appelait 🎜🎜🎜🎜 🎜Remarque : La méthode deferred.always() reçoit les paramètres utilisés par .resolve() ou .reject() de l'objet Deferred, qui sont souvent très différents. Pour cette raison, il est préférable d’utiliser simplement son comportement sans vérifier ses paramètres. Dans la plupart des cas, utilisez des gestionnaires explicites .done() ou .fail() car leurs paramètres sont connus. 🎜

Valeur de retour 🎜🎜deferred.always() renvoie un objet Deferred (différé) 🎜

Exemple et description 🎜🎜La méthode jQuery.get() renvoie un objet jqXHR à partir d'un objet Deferred (différé), nous pouvons attacher un rappel de réussite et d'erreur en utilisant la méthode deferred.always(), exemple de code jQuery : 🎜%%PRE_BLOCK_1%%
🎜🎜🎜deferred.done()🎜 🎜🎜🎜Lorsque l'objet Deferred (différé) est accepté, le gestionnaire ajouté par la fonction d'objet différé deferred.done() est appelé. 🎜🎜Conseils : Cette méthode accepte un ou plusieurs paramètres. deferred.done() renvoie un objet Deferred qui peut être connecté à d'autres méthodes d'objet différé (continuez à appeler les méthodes de l'objet Deferred), y compris des méthodes .done() supplémentaires. Lorsque l'objet Deferred est résolu, les fonctions de rappel ajoutées via deferred.done() sont exécutées dans l'ordre dans lequel elles ont été ajoutées et peuvent être transmises en tant que paramètres aux méthodes suivantes : solve, solveWith. 🎜🎜Syntaxe🎜🎜🎜deferred.done( doneCallbacks [, doneCallbacks ] )🎜🎜🎜🎜jQuery1.5 a ajouté cette fonction🎜🎜🎜Description du paramètre🎜🎜🎜🎜🎜Paramètre🎜🎜 Description🎜 🎜🎜 🎜🎜🎜doneCallbacks🎜🎜 🎜 Facultatif/Type de fonction🎜 Une fonction ou un tableau de fonctions qui est appelé lorsque l'objet différé est résolu🎜🎜🎜🎜

返回值" >Description du paramètre Paramètre DescriptionbeforeStartType de fonction Une fonction appelée avant le retour du constructeur🎜🎜🎜

Valeur de retour🎜🎜fonction d'usine jQuery.Deferred() Créer une nouvelle objet différé. 🎜
🎜🎜🎜deferred.always()🎜🎜🎜🎜Lorsque l'objet Deferred est accepté ou rejeté, le gestionnaire ajouté par deferred.always() est appelé. 🎜🎜Astuce : Le paramètre peut être une fonction ou un tableau de fonctions. Puisque deferred.always() renvoie un objet Deferred, il peut être connecté à d'autres méthodes d'objet différé (Ceci fait référence aux méthodes qui peuvent continuer à appeler des objets Deferred), y compris des méthodes .always supplémentaires. Lorsqu'un objet Deferred est résolu ou rejeté, les fonctions de rappel ajoutées via deferred.always() sont exécutées dans l'ordre dans lequel elles ont été ajoutées et peuvent être transmises comme arguments aux méthodes suivantes : solve , rejet , solveWith ou rejetWith . 🎜

Syntaxe🎜🎜🎜deferred.always( alwaysCallbacks [, alwaysCallbacks ] )🎜🎜🎜🎜jQuery1.6 a ajouté cette fonction🎜🎜

Paramètres Explication 🎜🎜 Paramètres 🎜🎜🎜🎜🎜🎜 Expliquez que 🎜🎜🎜🎜🎜🎜 说 Type facultatif/fonction 🎜 Une fonction ou un tableau de fonctions, lorsque l'objet DEFERRED (délai) est résolu ou s'appelait 🎜🎜🎜🎜 🎜Remarque : La méthode deferred.always() reçoit les paramètres utilisés par .resolve() ou .reject() de l'objet Deferred, qui sont souvent très différents. Pour cette raison, il est préférable d’utiliser simplement son comportement sans vérifier ses paramètres. Dans la plupart des cas, utilisez des gestionnaires explicites .done() ou .fail() car leurs paramètres sont connus. 🎜

Valeur de retour 🎜🎜deferred.always() renvoie un objet Deferred (différé) 🎜

Exemple et description 🎜🎜La méthode jQuery.get() renvoie un objet jqXHR à partir d'un objet Deferred (différé), nous pouvons attacher un rappel de réussite et d'erreur en utilisant la méthode deferred.always(), exemple de code jQuery : 🎜%%PRE_BLOCK_1%%
🎜🎜🎜deferred.done()🎜 🎜🎜🎜Lorsque l'objet Deferred (différé) est accepté, le gestionnaire ajouté par la fonction d'objet différé deferred.done() est appelé. 🎜🎜Conseils : Cette méthode accepte un ou plusieurs paramètres. deferred.done() renvoie un objet Deferred qui peut être connecté à d'autres méthodes d'objet différé (continuez à appeler les méthodes de l'objet Deferred), y compris des méthodes .done() supplémentaires. Lorsque l'objet Deferred est résolu, les fonctions de rappel ajoutées via deferred.done() sont exécutées dans l'ordre dans lequel elles ont été ajoutées et peuvent être transmises en tant que paramètres aux méthodes suivantes : solve, solveWith. 🎜🎜Syntaxe🎜🎜🎜deferred.done( doneCallbacks [, doneCallbacks ] )🎜🎜🎜🎜jQuery1.5 a ajouté cette fonction🎜🎜🎜Description du paramètre🎜🎜🎜🎜🎜Paramètre🎜🎜 Description🎜 🎜🎜 🎜🎜🎜doneCallbacks🎜🎜 🎜 Facultatif/Type de fonction🎜 Une fonction ou un tableau de fonctions qui est appelé lorsque l'objet différé est résolu🎜🎜🎜🎜

返回值

Valeur de retour
deferred.isRejected() est utilisée pour déterminer si l'objet Deferred a été rejeté.
deferred.isRejected()jQuery 1.5 Cette fonction a été ajoutée, la 1.7 est obsolète et la 1.8 a été supprimée

La valeur de retour deferred.isRejected() renvoie un Type booléen deferred.isResolved()🎜🎜La fonction deferred.isResolved() est utilisée pour déterminer si l'objet différé a été résolu. 🎜🎜🎜 Obsolète depuis jQuery 1.7, veuillez utiliser deferred.state() à la place. 🎜🎜🎜Remarque : 🎜🎜🎜Renvoie vrai si l'objet différé est dans l'état résolu. Cela signifie que deferred.resolve() ou deferred.resolveWith() a été appelé sur l'objet et doneCallbacks a été appelé (ou est en train d'être appelé). 🎜🎜Les objets différés (différés) peuvent avoir trois états : en attente, résolu ou rejeté ; utilisez deferred.isRejected() pour déterminer si l'objet différé est dans l'état rejeté. 🎜🎜

Syntaxe🎜🎜🎜deferred.isResolved()🎜🎜🎜🎜jQuery 1.5 Cette fonction a été ajoutée, la 1.7 est obsolète et la 1.8 a été supprimée 🎜🎜

La valeur de retour 🎜🎜deferred.isResolved() renvoie un 🎜Type booléen🎜🎜🎜🎜🎜deferred.notify()🎜🎜🎜La fonction deferred.notify() est utilisée pour définir un paramètre et le transmettre à la fonction de rappel (progressCallbacks) sur l'objet de retard appelé. 🎜🎜Remarque : 🎜🎜🎜Normalement, seul le créateur de l'objet différé (Deferred) peut appeler cette méthode. 🎜🎜Vous pouvez empêcher un autre code de modifier l'état de l'objet différé ou de signaler son état en appelant deferred.promise() pour renvoyer un objet Promise restreint. 🎜🎜Lors de l'accès à deferred.notify, tous les rappels de progression peuvent être ajoutés en accédant à deferred.then ou deferred.progress. Les rappels sont exécutés dans l’ordre dans lequel ils ont été ajoutés. 🎜🎜🎜En passant les arguments de .notify() à la fonction de rappel sur l'objet différé appelant, lorsque l'objet différé a été
résolu ou rejeté, puis appelez n'importe quel .notify() (ou Add ProgressCallBacks) sera ignoré
Ignorer
🎜🎜 grammaire 🎜🎜🎜Deferred.notify (ARGS) 🎜🎜🎜🎜jquery 1.7 Ajout de cette fonction 🎜🎜🎜 Paramètre 🎜🎜🎜🎜🎜 Paramètres 🎜 🎜Explication🎜🎜🎜🎜 🎜🎜args🎜🎜🎜Optional/Object type🎜 Passez un paramètre facultatif pour progresser les rappels (progressCallbacks)🎜🎜🎜🎜

返回值" >Syntaxedeferred.isRejected()jQuery 1.5 Cette fonction a été ajoutée, la 1.7 est obsolète et la 1.8 a été supprimée

La valeur de retour deferred.isRejected() renvoie un Type booléen deferred.isResolved()🎜🎜La fonction deferred.isResolved() est utilisée pour déterminer si l'objet différé a été résolu. 🎜🎜🎜 Obsolète depuis jQuery 1.7, veuillez utiliser deferred.state() à la place. 🎜🎜🎜Remarque : 🎜🎜🎜Renvoie vrai si l'objet différé est dans l'état résolu. Cela signifie que deferred.resolve() ou deferred.resolveWith() a été appelé sur l'objet et doneCallbacks a été appelé (ou est en train d'être appelé). 🎜🎜Les objets différés (différés) peuvent avoir trois états : en attente, résolu ou rejeté ; utilisez deferred.isRejected() pour déterminer si l'objet différé est dans l'état rejeté. 🎜🎜

Syntaxe🎜🎜🎜deferred.isResolved()🎜🎜🎜🎜jQuery 1.5 Cette fonction a été ajoutée, la 1.7 est obsolète et la 1.8 a été supprimée 🎜🎜

La valeur de retour 🎜🎜deferred.isResolved() renvoie un 🎜Type booléen🎜🎜🎜🎜🎜deferred.notify()🎜🎜🎜La fonction deferred.notify() est utilisée pour définir un paramètre et le transmettre à la fonction de rappel (progressCallbacks) sur l'objet de retard appelé. 🎜🎜Remarque : 🎜🎜🎜Normalement, seul le créateur de l'objet différé (Deferred) peut appeler cette méthode. 🎜🎜Vous pouvez empêcher un autre code de modifier l'état de l'objet différé ou de signaler son état en appelant deferred.promise() pour renvoyer un objet Promise restreint. 🎜🎜Lors de l'accès à deferred.notify, tous les rappels de progression peuvent être ajoutés en accédant à deferred.then ou deferred.progress. Les rappels sont exécutés dans l’ordre dans lequel ils ont été ajoutés. 🎜🎜🎜En passant les arguments de .notify() à la fonction de rappel sur l'objet différé appelant, lorsque l'objet différé a été
résolu ou rejeté, puis appelez n'importe quel .notify() (ou Add ProgressCallBacks) sera ignoré
Ignorer
🎜🎜 grammaire 🎜🎜🎜Deferred.notify (ARGS) 🎜🎜🎜🎜jquery 1.7 Ajout de cette fonction 🎜🎜🎜 Paramètre 🎜🎜🎜🎜🎜 Paramètres 🎜 🎜Explication🎜🎜🎜🎜 🎜🎜args🎜🎜🎜Optional/Object type🎜 Passez un paramètre facultatif pour progresser les rappels (progressCallbacks)🎜🎜🎜🎜

返回值

小知识
" >Syntaxe

" > Paramètre Description

deferred.resolve()🎜🎜🎜La fonction deferred.resolve() est utilisée pour résoudre l'objet Deferred (différé) et le compléter en fonction des paramètres d'arguments donnés. Fonction de rappel doneCallbacks. 🎜🎜Remarque : 🎜🎜🎜Habituellement, seul le créateur de l'objet différé peut appeler cette méthode. Vous pouvez empêcher un autre code de modifier l'état de l'objet différé ou de signaler son état en appelant deferred.promise(), qui renvoie un objet Promise restreint. 🎜🎜Lorsque l'objet différé est résolu, tous les doneCallbacks ajoutés via deferred.then ou deferred.done seront appelés. Les fonctions de rappel sont exécutées dans l'ordre dans lequel elles sont ajoutées. Les paramètres args passés à deferred.resolve() seront transmis à chaque fonction de rappel. Lorsque l'objet différé entre dans l'état résolu, tout doneCallbacks ajouté sera exécuté immédiatement avec les paramètres passés à .resolve(). 🎜🎜

Syntaxe🎜🎜🎜deferred.resolve( args )🎜🎜🎜🎜jQuery1.5 a ajouté cette fonction🎜🎜

Description du paramètre🎜🎜 🎜 🎜🎜Paramètres🎜🎜Description🎜🎜🎜🎜🎜🎜args🎜🎜🎜Type d'objet🎜 Passer un paramètre facultatif à la fonction de rappel d'achèvement (doneCallbacks)🎜🎜🎜🎜

Valeur de retour 🎜🎜 deferred.resolve() renvoie un 🎜Deferred objet 🎜🎜🎜🎜🎜deferred.resolveWith()🎜🎜 Le 🎜deferred. La fonction solveWith() est utilisée pour résoudre l'objet Deferred (différé) et compléter la fonction de rappel doneCallbacks en fonction du contexte et des paramètres args donnés. 🎜🎜Remarque : 🎜🎜🎜Habituellement, seul le créateur de l'objet différé peut appeler cette méthode. Vous pouvez empêcher un autre code de modifier l'état de l'objet différé ou de signaler son état en appelant deferred.promise(), qui renvoie un objet Promise restreint. 🎜🎜Lorsque l'objet différé est résolu, tous les doneCallbacks ajoutés via deferred.then ou deferred.done seront appelés. Les fonctions de rappel sont exécutées dans l'ordre dans lequel elles sont ajoutées. Les paramètres args passés à deferred.resolve() seront transmis à chaque fonction de rappel. Lorsque l'objet différé entre dans l'état résolu, tout doneCallbacks ajouté sera exécuté immédiatement avec les paramètres passés à .resolve(). 🎜🎜🎜Syntaxe🎜🎜🎜deferred.resolveWith( context [, args ] )🎜🎜🎜🎜jQuery1.5 a ajouté cette fonction🎜🎜🎜Description du paramètre🎜🎜🎜🎜🎜Paramètre🎜🎜Description🎜 🎜🎜 🎜🎜🎜contexte🎜 🎜 🎜Type d'objet🎜 Passez l'objet contextuel à la fonction de rappel terminé (doneCallbacks) 🎜🎜🎜🎜args🎜🎜🎜Type de tableau🎜 Passez un paramètre facultatif à la fonction de rappel terminé (doneCallbacks)🎜🎜🎜🎜

Valeur de retour" >Valeur de retourdeferred.rejectWith() renvoie un Objet différé🎜🎜🎜🎜🎜deferred.resolve()🎜🎜🎜La fonction deferred.resolve() est utilisée pour résoudre l'objet Deferred (différé) et le compléter en fonction des paramètres d'arguments donnés. Fonction de rappel doneCallbacks. 🎜🎜Remarque : 🎜🎜🎜Habituellement, seul le créateur de l'objet différé peut appeler cette méthode. Vous pouvez empêcher un autre code de modifier l'état de l'objet différé ou de signaler son état en appelant deferred.promise(), qui renvoie un objet Promise restreint. 🎜🎜Lorsque l'objet différé est résolu, tous les doneCallbacks ajoutés via deferred.then ou deferred.done seront appelés. Les fonctions de rappel sont exécutées dans l'ordre dans lequel elles sont ajoutées. Les paramètres args passés à deferred.resolve() seront transmis à chaque fonction de rappel. Lorsque l'objet différé entre dans l'état résolu, tout doneCallbacks ajouté sera exécuté immédiatement avec les paramètres passés à .resolve(). 🎜🎜

Syntaxe🎜🎜🎜deferred.resolve( args )🎜🎜🎜🎜jQuery1.5 a ajouté cette fonction🎜🎜

Description du paramètre🎜🎜 🎜 🎜🎜Paramètres🎜🎜Description🎜🎜🎜🎜🎜🎜args🎜🎜🎜Type d'objet🎜 Passer un paramètre facultatif à la fonction de rappel d'achèvement (doneCallbacks)🎜🎜🎜🎜

Valeur de retour 🎜🎜 deferred.resolve() renvoie un 🎜Deferred objet 🎜🎜🎜🎜🎜deferred.resolveWith()🎜🎜 Le 🎜deferred. La fonction solveWith() est utilisée pour résoudre l'objet Deferred (différé) et compléter la fonction de rappel doneCallbacks en fonction du contexte et des paramètres args donnés. 🎜🎜Remarque : 🎜🎜🎜Habituellement, seul le créateur de l'objet différé peut appeler cette méthode. Vous pouvez empêcher un autre code de modifier l'état de l'objet différé ou de signaler son état en appelant deferred.promise(), qui renvoie un objet Promise restreint. 🎜🎜Lorsque l'objet différé est résolu, tous les doneCallbacks ajoutés via deferred.then ou deferred.done seront appelés. Les fonctions de rappel sont exécutées dans l'ordre dans lequel elles sont ajoutées. Les paramètres args passés à deferred.resolve() seront transmis à chaque fonction de rappel. Lorsque l'objet différé entre dans l'état résolu, tout doneCallbacks ajouté sera exécuté immédiatement avec les paramètres passés à .resolve(). 🎜🎜🎜Syntaxe🎜🎜🎜deferred.resolveWith( context [, args ] )🎜🎜🎜🎜jQuery1.5 a ajouté cette fonction🎜🎜🎜Description du paramètre🎜🎜🎜🎜🎜Paramètre🎜🎜Description🎜 🎜🎜 🎜🎜🎜contexte🎜 🎜 🎜Type d'objet🎜 Passez l'objet contextuel à la fonction de rappel terminé (doneCallbacks) 🎜🎜🎜🎜args🎜🎜🎜Type de tableau🎜 Passez un paramètre facultatif à la fonction de rappel terminé (doneCallbacks)🎜🎜🎜🎜

Valeur de retour

Principalement utilisé pour le débogage, par exemple, avant de se préparer au rejet d'un objet différé, déterminez s'il est déjà dans l'état résolu.
" >Syntaxe

deferred.pipe()deferred. ) la fonction est une méthode utilitaire permettant de filtrer et/ou de chaîner des objets différés. Remarque : Depuis jQuery 1.8, la méthode deferred.pipe() est obsolète. Utilisez plutôt deferred.then(). À partir de jQuery 1.8, la méthode deferred.pipe() est obsolète.deferred.then() doit être utilisée à la place. La méthode deferred.pipe() renvoie un nouvel objet Promise, utilisé pour filtrer le statut ou la valeur de l'objet différé renvoyé par la fonction, passé au done() correspondant, échoue () de la méthode Promise object )
Les fonctions doneFilter et failFilter filtrent le statut résolu/rejeté et la valeur du différé d'origine (différé).
À partir de jQuery 1.7, cette méthode accepte également une fonction progressFilter pour filtrer toutes les méthodes notify ou notifyWith qui accèdent au différé (différé). Ces filtres peuvent renvoyer une nouvelle valeur lorsque la fonction de rappel done() ou fail() de l'objet promise renvoyé par pipe() est appelée, ou renvoyer d'autres objets visibles (Deferred, Promise, etc.). code>Passez son propre statut de résolution/rejet et la valeur de retour transmise à la fonction de rappel de promesse de tube. Si null est utilisé comme fonction de filtre, ou si aucune fonction de filtre n'est spécifiée, la même valeur sera utilisée comme valeur d'origine lorsque la promesse de canal est résolue ou rejetée. Syntaxedeferred.pipe( [doneFilter ] [, failFilter ] )🎜🎜🎜 Cette fonction est nouvelle dans jQuery 1.6 et obsolète dans 1.8 🎜🎜🎜🎜deferred.pipe( [doneFilter ] [, failFilter ] [, progressFilter ] )🎜🎜🎜🎜jQuery1.7 a ajouté cette fonction, 1.8 est obsolète🎜🎜🎜paramètre description🎜🎜🎜🎜🎜paramètre🎜🎜 description🎜🎜🎜🎜🎜🎜doneFilter🎜🎜 🎜Type de fonction 🎜 Fonction facultative, lorsqu'elle est retardée get 🎜🎜🎜🎜failFilter🎜🎜🎜Type de fonction🎜 Fonction facultative appelée lorsque le délai est rejeté 🎜🎜🎜🎜

返回值" >Valeur de retour deferred . state() renvoie un String typedeferred.pipe()deferred. ) la fonction est une méthode utilitaire permettant de filtrer et/ou de chaîner des objets différés. Remarque : Depuis jQuery 1.8, la méthode deferred.pipe() est obsolète. Utilisez plutôt deferred.then(). À partir de jQuery 1.8, la méthode deferred.pipe() est obsolète.deferred.then() doit être utilisée à la place. La méthode deferred.pipe() renvoie un nouvel objet Promise, utilisé pour filtrer le statut ou la valeur de l'objet différé renvoyé par la fonction, passé au done() correspondant, échoue () de la méthode Promise object )
Les fonctions doneFilter et failFilter filtrent le statut résolu/rejeté et la valeur du différé d'origine (différé).
À partir de jQuery 1.7, cette méthode accepte également une fonction progressFilter pour filtrer toutes les méthodes notify ou notifyWith qui accèdent au différé (différé). Ces filtres peuvent renvoyer une nouvelle valeur lorsque la fonction de rappel done() ou fail() de l'objet promise renvoyé par pipe() est appelée, ou renvoyer d'autres objets visibles (Deferred, Promise, etc.). code>Passez son propre statut de résolution/rejet et la valeur de retour transmise à la fonction de rappel de promesse de tube. Si null est utilisé comme fonction de filtre, ou si aucune fonction de filtre n'est spécifiée, la même valeur sera utilisée comme valeur d'origine lorsque la promesse de canal est résolue ou rejetée. Syntaxedeferred.pipe( [doneFilter ] [, failFilter ] )🎜🎜🎜 Cette fonction est nouvelle dans jQuery 1.6 et obsolète dans 1.8 🎜🎜🎜🎜deferred.pipe( [doneFilter ] [, failFilter ] [, progressFilter ] )🎜🎜🎜🎜jQuery1.7 a ajouté cette fonction, 1.8 est obsolète🎜🎜🎜paramètre description🎜🎜🎜🎜🎜paramètre🎜🎜 description🎜🎜🎜🎜🎜🎜doneFilter🎜🎜 🎜Type de fonction 🎜 Fonction facultative, lorsqu'elle est retardée get 🎜🎜🎜🎜failFilter🎜🎜🎜Type de fonction🎜 Fonction facultative appelée lorsque le délai est rejeté 🎜🎜🎜🎜

返回值

Maison interface Web Questions et réponses frontales Qu'est-ce que l'objet différé jquery

Qu'est-ce que l'objet différé jquery

Nov 02, 2022 pm 05:58 PM
jquery Objet retardé

L'objet différé jquery est "Deferred", qui est un objet utilitaire pouvant être lié créé en appelant la méthode jQuery.Deferred(). Un objet différé est chaînable, de la même manière qu'un objet jQuery, sauf qu'il possède ses propres méthodes ; il peut enregistrer plusieurs fonctions de rappel dans une liste de rappel, appeler la liste de rappel et transmettre le succès ou l'échec d'une fonction de rappel asynchrone ou synchrone. état de fonction.

Qu'est-ce que l'objet différé jquery

L'environnement d'exploitation de ce tutoriel : système windows7, version jquery3.6.1, ordinateur Dell G3.

Introduits dans jQuery 1.5, les objets différés sont des objets utilitaires pouvant être liés créés en appelant la méthode jQuery.Deferred(). Il peut enregistrer plusieurs fonctions de rappel dans la liste de rappel, appeler la liste de rappel et transmettre l'état de réussite ou d'échec des fonctions asynchrones ou synchrones.

Un objet différé est chaînable, de la même manière qu'un objet jQuery est chaînable, sauf qu'il a ses propres méthodes. Après avoir créé un objet différé, vous pouvez utiliser l'une des méthodes suivantes pour créer un lien direct vers l'objet qui a été créé ou enregistré en appelant une ou plusieurs de ses méthodes.

List

Function Description
$.Deferred() est utilisé pour renvoyer une méthode d'objet utilitaire chaîné pour enregistrer plusieurs rappels et appeler la file d'attente de rappel, en passant toute synchronisation Ou le statut de réussite ou d'échec d'une fonction asynchrone.
deferred.always() est utilisé pour appeler le gestionnaire ajouté lorsque l'objet différé est accepté ou rejeté
deferred.done() est utilisé lorsque l'objet différé est accepté ou rejeté Lorsqu'il est accepté, le gestionnaire ajouté s'appelle
deferred.fail() est utilisé lorsque l'objet différé (différé) est rejeté, le gestionnaire ajouté s'appelle
deferred.progress() est utilisé lorsqu'un objet différé génère une notification de progression, appelez le gestionnaire d'ajout
deferred.isRejected()1.8- pour déterminer si l'objet Deferred a été rejeté
deferred.isResolved()1.8- Utilisé pour déterminer si l'objet Deferred a été rejeté
deferred.notify() Utilisé pour transmettre des paramètres au rappel en cours
deferred.notifyWith() Utilisé Passer les paramètres, l'objet contextuel au rappel en cours
deferred.reject() pour rejeter l'objet différé, et transmettre les paramètres à la fonction de rappel d'échec
deferred.rejectWith() pour rejeter l'objet différé, et transmettre les paramètres et les objets de contexte à la fonction de rappel d'échec
deferred.resolve() pour résoudre les objets différés, et transmettre les paramètres à la fonction de rappel doneCallbacks
deferred.resolveWith() pour l'objet Delay de résolution, et transmettre les paramètres et l'objet de contexte à la fonction de rappel doneCallbacks
deferred.state() est utilisée pour déterminer l'état actuel d'un objet Deferred (différé)
deferred.pipe() Utilisé pour filtrer l'état ou la valeur de un objet différé renvoyé par une fonction
deferred.then() Utilisé pour ajouter un gestionnaire qui est appelé lorsqu'un objet différé est résolu, rejeté ou est toujours en cours.
deferred.catch() est utilisé pour appeler le gestionnaire ajouté lorsque l'objet Deferred est rejeté.
deferred.promise() est utilisé pour renvoyer un objet Promise différé (retardé)
.promise() est utilisé pour renvoyer un objet Promise et observer toutes les actions d'un certain type liées à un collection , si elle a été ajoutée à la file d'attente.

Description

$.Deferred()

$.Deferred() est un constructeur qui renvoie une méthode d'objet utilitaire chaîné pour enregistrer plusieurs rappels et appeler la file d'attente de rappel, en passant toute synchronisation ou le succès ou l'échec statut d'une fonction asynchrone.

Astuce :提示:

  • $.Deferred() 构造函数创建一个新的 Deferred(延迟)对象, jQuery.Deferred
    可传递一个可选的函数,该函数在构造方法返回之前被调用并传递一个新的 Deferred 对象作为函数的第一个参数。例如被调用的函数可以使用 deferred.then()来附加回调函数。
  • 一个 Deferred 对象开始于挂起状态。任何使用 deferred.then(), deferred.always(),
    deferred.done(), 或者 deferred.fail() 添加到这个对象的回调函数都是排队等待执行的。

调用 deferred.resolve() 或 eferred.resolveWith() 转换延迟到解决状态后立即执行设置的
doneCallbacks 。
调用 deferred.reject() 或 deferred.rejectWith() 转换延迟到拒绝状态后立即执行设置的 failCallbacks 。一旦对象已经进入了解决或拒绝状态,它保持该状态。回调仍然可以添加到已解决或已拒绝的 Deferred 对象——它们会立即执行。

语法

  • $.Deferred( [beforeStart ] )

jQuery1.5新增该函数

参数说明

参数 说明
beforeStart Function类型 个在构造函数返回之前调用的函数

返回值

jQuery.Deferred()工厂函数创建一个新的deferred对象。


deferred.always()

当Deferred(延迟)对象被受理或被拒绝时,调用通过deferred.always() 添加的处理程序。

提示:参数可以是一个函数或一个函数数组。由于 deferred.always() 返回的是一个 Deferred 对象,所以可以连接其他的延迟对象方法(这里是指可以继续调用Deferred对象的方法),包括额外的 .always 方法。 当 Deferred 对象得到解决或被拒绝时,通过deferred.always() 添加的回调函数按它们被添加时的顺序执行,并且可以作为参数传递给如下的方法使用:resolve , reject , resolveWith 或 rejectWith。

语法

  • deferred.always( alwaysCallbacks [, alwaysCallbacks ] )

jQuery1.6新增该函数

参数说明

参数 说明
alwaysCallbacks 可选/Function类型 一个函数或者函数数组,当Deferred(延迟)对象得到解决或被拒绝时被调用

注意: deferred.always()方法接收了Deferred对象.resolve()或.reject()使用的参数, 这往往是非常不同的。 为此, 最好的只用它的行为,而不去检查他的参数。 在大多数情况下, 使用显式 .done() 或 .fail()处理程序,因为他们的参数都是已知的。

返回值

deferred.always()返回Deferred(延迟)对象

示例&说明

jQuery.get()方法返回一个来自一个Deferred(延迟)对象的jqXHR对象,我们可以附加一个成功和错误使用deferred.always()方法的回调,jQuery示例代码:

 $.get( "test.php" ).always(function() {
    alert( "带有成功和错误的回调参数的$.get方法已完成。" );
 })

<span style="font-size: 18px;">deferred.done()</span>

当Deferred(延迟)对象被受理时,调用通过延迟对象函数deferred.done()

$.Deferred() Le constructeur crée un nouvel objet Deferred (différé), jQuery.Deferred
peut transmettre une fonction facultative, qui est utilisée dans la construction. La méthode retourne avant d'être appelée et passe un nouvel objet Deferred comme premier paramètre de la fonction. Par exemple, la fonction appelée peut utiliser deferred.then() pour attacher une fonction de rappel.

Un objet différé démarre dans un état suspendu. Toutes les fonctions de rappel ajoutées à cet objet à l'aide de deferred.then(), deferred.always(),
deferred.done() ou deferred.fail() sont mises en file d'attente pour exécution.

  • Appelez deferred.resolve() ou eferred.resolveWith() pour convertir le délai en état résolu et exécuter l'ensemble
    doneCallbacks immédiatement après.
    Exécutez l'ensemble failCallbacks immédiatement après avoir appelé deferred.reject() ou deferred.rejectWith() pour faire passer le différé à l'état de rejet. Une fois qu’un objet est entré dans l’état résolu ou rejeté, il reste dans cet état. Des rappels peuvent toujours être ajoutés aux objets différés résolus ou rejetés : ils sont exécutés immédiatement.
  • Syntaxe

$.Deferred([beforeStart])

jQuery1.5 a ajouté cette fonction

Description du paramètre

Paramètre DescriptionType de fonction Une fonction appelée avant le retour du constructeur
beforeStart
🎜🎜🎜

Valeur de retour🎜🎜fonction d'usine jQuery.Deferred() Créer une nouvelle objet différé. 🎜
🎜🎜🎜deferred.always()🎜🎜🎜🎜Lorsque l'objet Deferred est accepté ou rejeté, le gestionnaire ajouté par deferred.always() est appelé. 🎜🎜Astuce : Le paramètre peut être une fonction ou un tableau de fonctions. Puisque deferred.always() renvoie un objet Deferred, il peut être connecté à d'autres méthodes d'objet différé (Ceci fait référence aux méthodes qui peuvent continuer à appeler des objets Deferred), y compris des méthodes .always supplémentaires. Lorsqu'un objet Deferred est résolu ou rejeté, les fonctions de rappel ajoutées via deferred.always() sont exécutées dans l'ordre dans lequel elles ont été ajoutées et peuvent être transmises comme arguments aux méthodes suivantes : solve , rejet , solveWith ou rejetWith . 🎜

Syntaxe🎜🎜🎜deferred.always( alwaysCallbacks [, alwaysCallbacks ] )🎜🎜🎜🎜jQuery1.6 a ajouté cette fonction🎜🎜

Paramètres Explication 🎜🎜 Paramètres 🎜🎜🎜🎜🎜🎜 Expliquez que 🎜🎜🎜🎜🎜🎜 说 Type facultatif/fonction 🎜 Une fonction ou un tableau de fonctions, lorsque l'objet DEFERRED (délai) est résolu ou s'appelait 🎜🎜🎜🎜 🎜Remarque : La méthode deferred.always() reçoit les paramètres utilisés par .resolve() ou .reject() de l'objet Deferred, qui sont souvent très différents. Pour cette raison, il est préférable d’utiliser simplement son comportement sans vérifier ses paramètres. Dans la plupart des cas, utilisez des gestionnaires explicites .done() ou .fail() car leurs paramètres sont connus. 🎜

Valeur de retour 🎜🎜deferred.always() renvoie un objet Deferred (différé) 🎜

Exemple et description 🎜🎜La méthode jQuery.get() renvoie un objet jqXHR à partir d'un objet Deferred (différé), nous pouvons attacher un rappel de réussite et d'erreur en utilisant la méthode deferred.always(), exemple de code jQuery : 🎜
 <button>Go</button>
 <p>Ready...</p>

🎜🎜🎜deferred.done()🎜 🎜🎜🎜Lorsque l'objet Deferred (différé) est accepté, le gestionnaire ajouté par la fonction d'objet différé deferred.done() est appelé. 🎜🎜Conseils : Cette méthode accepte un ou plusieurs paramètres. deferred.done() renvoie un objet Deferred qui peut être connecté à d'autres méthodes d'objet différé (continuez à appeler les méthodes de l'objet Deferred), y compris des méthodes .done() supplémentaires. Lorsque l'objet Deferred est résolu, les fonctions de rappel ajoutées via deferred.done() sont exécutées dans l'ordre dans lequel elles ont été ajoutées et peuvent être transmises en tant que paramètres aux méthodes suivantes : solve, solveWith. 🎜🎜Syntaxe🎜🎜🎜deferred.done( doneCallbacks [, doneCallbacks ] )🎜🎜🎜🎜jQuery1.5 a ajouté cette fonction🎜🎜🎜Description du paramètre🎜🎜🎜🎜🎜Paramètre🎜🎜 Description🎜 🎜🎜 🎜🎜🎜doneCallbacks🎜🎜 🎜 Facultatif/Type de fonction🎜 Une fonction ou un tableau de fonctions qui est appelé lorsque l'objet différé est résolu🎜🎜🎜🎜

返回值

deferred.done() 返回的是一个 Deferred 对象

示例&说明

HTML示例代码:

 <button>Go</button>
 <p>Ready...</p>

jQuery示例代码

function fn1() {
  $("p").append(" 1 ");
}
function fn2() {
  $("p").append(" 2 ");
}
function fn3(n) {
  $("p").append(n + " 3 " + n);
}

var dfd = $.Deferred();//创建一个延迟对象

//添加dfd被解决时需要的被调用的处理函数
dfd
.done( [fn1, fn2], fn3, [fn2, fn1] )// 连接一个函数或者函数数组
.done(function(n) {//可以连接其他的方法
  $("p").append(n + " we&#39;re done.");
});

//当点击按钮时修改延迟对象的状态为已解决
//此时调用通过deferred.done()添加的延迟对象被受理后的处理函数
$("button").bind("click", function() {
  dfd.resolve("and");//输出:1 2 and 3 and 2 1 and we&#39;re done.
});

<span style="font-size: 18px;">deferred.fail()</span>

当 Deferred (延迟)对象被拒绝时,调用通过deferred.fail()添加的处理程序。

提示:该方法接受一个或者多个参数。 deferred.fail() 返回的是一个 Deferred 对象, 可以连接其他的延迟对象方法(继续调用其他Deferred 对象的方法),包括额外的 .fail() 方法。当 Deferred 对象被拒绝时,通过deferred.fail()添加的回调函数 按它们被添加时的顺序执行,并且可以作为参数传递给如下的方法使用:deferred.resolve() 或 deferred.rejectWith()。

语法

  • deferred.fail( failCallbacks [, failCallbacks ] )

jQuery1.5新增该函数

参数说明

参数说明
failCallbacks可选/Function类型 一个函数或者函数数组,当Deferred(延迟)对象被拒绝时被调用

返回值

deferred.fail() 返回的是一个 Deferred 对象

示例&说明

jQuery示例代码

$(function () { 
    $.get("test.php")
        .done(function(){ alert("$.get 成功!"); })//解决时调用
        .fail(function(){ alert("$.get 失败!"); });//被拒绝时调用
})

<span style="font-size: 18px;">deferred.progress()</span>

deferred.progress() 函数当Deferred(延迟)对象生成进度通知时,调用添加处理程序。

注意:当通过调用 notify 或 notifyWith 使延迟对象产生进度通知时,progressCallbacks 就会被调用。 由于 deferred.progress()返回的是延迟对象,所以其它延迟对象方法可以链接到该对象上(链式调用)。当延迟对象被 resolved 或 rejected 时, 进度回调函数将不再被调用,但是当Deferred (延迟)进入resolved(解决) 或 rejected(拒绝)状态后,新添加任何的progressCallbacks将立即执行,使用的参数被传递给.notify() 或 notifyWith()调用

语法

  • deferred.progress( progressCallbacks[,progressCallbacks] )

jQuery 1.7 新增该函数

参数说明

参数说明
progressCallbacks可选/Function类型 一个函数或者函数数组,当Deferred(延迟)对象生成正在执行中的进度通知时被调用。

Valeur de retour

deferred.progress() renvoie un Objet différé


<span style="font-size: 18px;">deferred.isRejected()</span></code ><code><span style="font-size: 18px;">deferred.isRejected()</span>

deferred.isRejected() 函数用来确定 Deferred 对象是否已被拒绝。

从jQuery1.7开始已经过时,请使用 deferred.state() 代替。

注意:

  • 如果 Deferred(延迟)对象是在被拒绝的状态,则返回 true。这意味着 deferred.reject() 或者deferred.rejectWith() 已经在对象上被调用过,并且 failCallbacks 已经被调用过(或者正处于被调用的阶段)。
  • Deferred(延迟)对象可以有三种状态:挂起(pending),解决(resolved),或拒绝(rejected);使用 deferred.isResolved() 来判断延迟对象是否在解决状态。

语法

  • deferred.isRejected()

jQuery 1.5 新增该函数,1.7过时,1.8移除

返回值

deferred.isRejected() 返回的是一个 Boolean类型


<span style="font-size: 18px;">deferred.isResolved()</span>

deferred.isResolved() 函数用来确定 Deferred 对象是否已被解决。

从jQuery1.7开始已经过时,请使用 deferred.state() 代替。

注意:

  • 如果 Deferred(延迟)对象是在被解决的状态,则返回 true。这意味着 deferred.resolve() 或者 deferred.resolveWith() 已经在对象上被调用过,并且 doneCallbacks 已经被调用过(或者正处于被调用的阶段)。
  • Deferred(延迟)对象可以有三种状态:挂起(pending),解决(resolved),或拒绝(rejected);使用 deferred.isRejected() 来判断延迟对象是否在拒绝状态。

语法

  • deferred.isResolved()

jQuery 1.5 新增该函数,1.7过时,1.8移除

返回值

deferred.isResolved() 返回的是一个 Boolean类型


<span style="font-size: 18px;">deferred.notify()</span>

deferred.notify() 函数用于定一个参数,传递给正在调用的延迟对象上的回调函数 ( progressCallbacks )。

注意:

  • 通常,只有延迟对象(Deferred)的创建者才能调用此方法。
  • 你可以通过调用 deferred.promise() 返回一个受限的 Promise 对象,来阻止其它代码改变延迟对象的状态或报告它的状态。
  • 当 deferred.notify 被访问时, 任何 progressCallbacks 可以通过访问 deferred.then 或者 deferred.progress 来添加。回调依照他们添加时的顺序执行。

通过来自.notify()的传递参数给正在调用的延迟对象上的回调函数,当迟延对象已经被 <br/> resolved 或被 rejected 之后,再调用任何 .notify() (或者添加 progressCallbacks) 都会 <br/> 被忽略 La fonction

deferred.isRejected() est utilisée pour déterminer si l'objet Deferred a été rejeté.

  • Obsolète depuis jQuery 1.7, veuillez utiliser deferred.state() à la place.
Remarque :

Renvoie vrai si l'objet différé est dans l'état rejeté. Cela signifie que deferred.reject() ou deferred.rejectWith() a été appelé sur l'objet et que failCallbacks a été appelé (ou est en train d'être appelé).

Les objets différés (différés) peuvent avoir trois états : en attente, résolu ou rejeté ; utilisez deferred.isResolved() pour déterminer si l'objet différé est dans l'état résolu.

Syntaxe

deferred.isRejected()jQuery 1.5 Cette fonction a été ajoutée, la 1.7 est obsolète et la 1.8 a été supprimée

La valeur de retour

deferred.isRejected() renvoie un <span style="font-size: 18px;">deferred.isResolved()</span>
Type booléen
🎜🎜La fonction deferred.isResolved() est utilisée pour déterminer si l'objet différé a été résolu. 🎜🎜🎜 Obsolète depuis jQuery 1.7, veuillez utiliser deferred.state() à la place. 🎜🎜🎜Remarque : 🎜🎜🎜Renvoie vrai si l'objet différé est dans l'état résolu. Cela signifie que deferred.resolve() ou deferred.resolveWith() a été appelé sur l'objet et doneCallbacks a été appelé (ou est en train d'être appelé). 🎜🎜Les objets différés (différés) peuvent avoir trois états : en attente, résolu ou rejeté ; utilisez deferred.isRejected() pour déterminer si l'objet différé est dans l'état rejeté. 🎜🎜

Syntaxe🎜🎜🎜deferred.isResolved()🎜🎜🎜🎜jQuery 1.5 Cette fonction a été ajoutée, la 1.7 est obsolète et la 1.8 a été supprimée 🎜🎜

La valeur de retour 🎜🎜deferred.isResolved() renvoie un 🎜Type booléen🎜🎜🎜🎜🎜<span style="font-size: 18px;">deferred.notify()</span>🎜🎜🎜La fonction deferred.notify() est utilisée pour définir un paramètre et le transmettre à la fonction de rappel (progressCallbacks) sur l'objet de retard appelé. 🎜🎜Remarque : 🎜🎜🎜Normalement, seul le créateur de l'objet différé (Deferred) peut appeler cette méthode. 🎜🎜Vous pouvez empêcher un autre code de modifier l'état de l'objet différé ou de signaler son état en appelant deferred.promise() pour renvoyer un objet Promise restreint. 🎜🎜Lors de l'accès à deferred.notify, tous les rappels de progression peuvent être ajoutés en accédant à deferred.then ou deferred.progress. Les rappels sont exécutés dans l’ordre dans lequel ils ont été ajoutés. 🎜🎜🎜En passant les arguments de .notify() à la fonction de rappel sur l'objet différé appelant, lorsque l'objet différé a été
résolu ou rejeté, puis appelez n'importe quel .notify() (ou Add ProgressCallBacks) sera ignoré
Ignorer
🎜🎜 grammaire 🎜🎜🎜Deferred.notify (ARGS) 🎜🎜🎜🎜jquery 1.7 Ajout de cette fonction 🎜🎜🎜 Paramètre 🎜🎜🎜🎜🎜 Paramètres 🎜 🎜Explication🎜🎜🎜🎜 🎜🎜args🎜🎜🎜Optional/Object type🎜 Passez un paramètre facultatif pour progresser les rappels (progressCallbacks)🎜🎜🎜🎜

返回值

deferred.notify() 返回的是一个 Deferred 对象

小知识

jQuery提供的deferred.promise()方法的作用是,在原来的Deferred 对象上返回另一个 Deferred 对象,即受限制的 Promise 对象,受限制的 Promise 对象只开放与改变执行状态无关的方法(比如done()方法和fail()方法),屏蔽与改变执行状态有关的方法(比如resolve()方法和reject()方法),从而使得执行状态不能被改变。

首先看一个 Deferred对象的执行状态被改变的例子:

var dtd = $.Deferred(); // 新建一个Deferred对象
var wait = function(dtd){
  var tasks = function(){
    alert("执行完毕!");
    dtd.resolve(); // 改变Deferred对象的执行状态
  };
  setTimeout(tasks,5000);
  return dtd;
};
$.when(wait(dtd))
.done(function(){ alert("等待执行!"); })
.fail(function(){ alert("出错啦!"); });
//代码的尾部加了一行dtd.resolve(),这就改变了dtd对象的执行状态,因此导致done()方法立刻执行
dtd.resolve();// 改变Deferred对象的执行状态

再看一个 Deferred对象返回deferred.promise()的例子:

var wait = function(){
  var dtd = $.Deferred(); //在函数内部,新建一个Deferred对象
  var tasks = function(){
    alert("执行完毕!");
    dtd.resolve(); // 改变Deferred对象的执行状态
  };

  setTimeout(tasks,5000);
  return dtd.promise(); // 返回promise对象
};
$.when(wait())
.done(function(){ alert("哈哈,成功了!"); })
.fail(function(){ alert("出错啦!"); });

wait()函数返回的是promise对象。dtd.promise().resolve()方法不存在,因此无法改变状态,然后,我们把回调函数绑定在这个对象上面,而不是原来的deferred对象上面。

这样的好处是,无法改变promise对象的执行状态,要想改变执行状态,只能操作原来的deferred对象。


<span style="font-size: 18px;">deferred.notifyWith()</span>

deferred.notifyWith() 函数用于给定上下文和参数,传递给正在调用的延迟对象上进行的回调函数( progressCallbacks )。

注意:

  • 通常,只有延迟对象(Deferred)的创建者才能调用此方法。
  • 你可以通过调用 deferred.promise() 返回一个受限的 Promise 对象,来阻止其它代码改变延迟对象的状态或报告它的状态。
  • 当 deferred.notifyWith 被调用时, 任何 progressCallbacks 可以通过访问 deferred.then 或者 deferred.progress 来添加。回调 依照他们添加时的顺序执行。

通过 .notifyWith() 传递参数给每个回调函数,当迟延对象已经被 resolved 或被 <br/> rejected 之后,再调用任何 .notifyWith() (或者添加 progressCallbacks) 都会被忽略。

语法

  • deferred.notifyWith( context [, args ] )

jQuery 1.7 新增该函数

参数说明

参数说明
contextObject类型 作为this对象,传递给进行中的回调(progressCallbacks)
argsArray类型 传递一个可选的参数给进行中的回调(progressCallbacks)

返回值

deferred.notifyWith() 返回的是一个 Deferred 对象


<span style="font-size: 18px;">deferred.reject()</span>

deferred.reject() 函数用于拒绝延迟对象,并根据给定的参数调用任何 failCallbacks 回调函数。

注意:

  • 通常只有延迟对象的创建者才可以调用该方法。你可以通过调用 deferred.promise(),返回一个受限的 Promise 对象,来阻止其它代码改变延迟对象的状态或报告它的状态。
  • 当延迟对象被 rejected 时,任何通过 deferred.then 或 deferred.fail 添加的 failCallbacks,都会被调用。回调函数按它们被添加时的顺序执行。传递给 deferred.reject() 的 args 参数,会传给每个回调函数。当延迟对象进入 rejected 状态后,任何 failCallbacks 被添加时,就会被立刻执行,并带上传入给 .reject() 的参数。

语法

  • deferred.reject( args )

jQuery1.5新增该函数

参数说明

参数说明
argsObject类型 传递一个可选的参数给失败的回调(failCallbacks)

Valeur de retour

deferred.reject() renvoie un Objet différé


<span style="font-size: 18px;">deferred.rejectWith()</span></code ><code><span style="font-size: 18px;">deferred.rejectWith()</span>

deferred.rejectWith() 函数用于拒绝延迟对象,并根据给定的 context 和 args 参数调用任何 failCallbacks 回调函数。

注意:

  • 通常只有延迟对象的创建者才可以调用该方法。你可以通过调用 deferred.promise(),返回一个受限的 Promise 对象,来阻止其它代码改变延迟对象的状态或报告它的状态。
  • 当延迟对象被 rejected 时,任何通过 deferred.then 或 deferred.fail 添加的 failCallbacks,都会被调用。回调函数按它们被添加时的顺序执行。传递给 deferred.reject() 的 args 参数, 会传给每个回调函数。当延迟对象进入 rejected 状态后,任何 failCallbacks 被添加时,就会被立刻执行,并带上传入给 .reject() 的参数。

语法

  • deferred.rejectWith( context [, args ] )

jQuery1.5新增该函数

参数说明

参数说明
contextObject类型 传递一个对象给失败的回调(failCallbacks)
argsArray类型 传递一个可选的参数给失败的回调(failCallbacks)

返回值

deferred.rejectWith() 返回的是一个 Deferred 对象


<span style="font-size: 18px;">deferred.resolve()</span>

deferred.resolve() 函数用于解决Deferred(延迟)对象,并根据给定的args参数给完成回调函数doneCallbacks 。

注意:

  • 通常只有延迟对象的创建者才可以调用该方法。你可以通过调用 deferred.promise(),返回一个受限的 Promise 对象,来阻止其它代码改变延迟对象的状态或报告它的状态。
  • 当延迟对象被 resolved 时,任何通过 deferred.then 或 deferred.done 添加的 doneCallbacks,都会被调用。回调函数按它们被添加时的顺序执行。传递给 deferred.resolve() 的 args 参数, 会传给每个回调函数。当延迟对象进入 resolved 状态后,任何 doneCallbacks 被添加时,就会被立刻执行,并带上传入给 .resolve() 的参数。

语法

  • deferred.resolve( args )

jQuery1.5新增该函数

参数说明

参数说明
argsObject类型 传递一个可选的参数给完成回调函数(doneCallbacks)

返回值

deferred.resolve() 返回的是一个 Deferred 对象


<span style="font-size: 18px;">deferred.resolveWith()</span> La fonction

deferred.rejectWith() est utilisée pour rejeter l'objet différé et appeler n'importe quelle fonction de rappel failCallbacks en fonction du contexte et des paramètres d'arguments donnés.

Remarque :

    Habituellement, seul le créateur de l'objet différé peut appeler cette méthode. Vous pouvez empêcher un autre code de modifier l'état de l'objet différé ou de signaler son état en appelant deferred.promise(), qui renvoie un objet Promise restreint.
  • Lorsque l'objet différé est rejeté, tous les failCallbacks ajoutés via deferred.then ou deferred.fail seront appelés. Les fonctions de rappel sont exécutées dans l'ordre dans lequel elles sont ajoutées. Les paramètres args passés à deferred.reject() seront transmis à chaque fonction de rappel. Lorsque l'objet différé entre dans l'état rejeté, tout failCallback ajouté sera exécuté immédiatement avec les paramètres passés à .reject().
  • Syntaxe

deferred.rejectWith( context [, args ] )
jQuery1.5 a ajouté cette fonction

Paramètre Description

ParamètreDescriptioncontext Transmettre un objet pour faire échouer les rappels (failCallbacks)args Passer un paramètre facultatif est donné à rappels échoués (failCallbacks)

Valeur de retour

deferred.rejectWith() renvoie un
Type d'objet
Type de tableau
Objet différé🎜🎜🎜🎜🎜<span style ="font-size : 18px;">deferred.resolve()</span>🎜🎜🎜La fonction deferred.resolve() est utilisée pour résoudre l'objet Deferred (différé) et le compléter en fonction des paramètres d'arguments donnés. Fonction de rappel doneCallbacks. 🎜🎜Remarque : 🎜🎜🎜Habituellement, seul le créateur de l'objet différé peut appeler cette méthode. Vous pouvez empêcher un autre code de modifier l'état de l'objet différé ou de signaler son état en appelant deferred.promise(), qui renvoie un objet Promise restreint. 🎜🎜Lorsque l'objet différé est résolu, tous les doneCallbacks ajoutés via deferred.then ou deferred.done seront appelés. Les fonctions de rappel sont exécutées dans l'ordre dans lequel elles sont ajoutées. Les paramètres args passés à deferred.resolve() seront transmis à chaque fonction de rappel. Lorsque l'objet différé entre dans l'état résolu, tout doneCallbacks ajouté sera exécuté immédiatement avec les paramètres passés à .resolve(). 🎜🎜

Syntaxe🎜🎜🎜deferred.resolve( args )🎜🎜🎜🎜jQuery1.5 a ajouté cette fonction🎜🎜

Description du paramètre🎜🎜 🎜 🎜🎜Paramètres🎜🎜Description🎜🎜🎜🎜🎜🎜args🎜🎜🎜Type d'objet🎜 Passer un paramètre facultatif à la fonction de rappel d'achèvement (doneCallbacks)🎜🎜🎜🎜

Valeur de retour 🎜🎜 deferred.resolve() renvoie un 🎜Deferred objet 🎜🎜🎜🎜🎜<span style="font-size: 18px;">deferred.resolveWith()</span>🎜🎜 Le 🎜deferred. La fonction solveWith() est utilisée pour résoudre l'objet Deferred (différé) et compléter la fonction de rappel doneCallbacks en fonction du contexte et des paramètres args donnés. 🎜🎜Remarque : 🎜🎜🎜Habituellement, seul le créateur de l'objet différé peut appeler cette méthode. Vous pouvez empêcher un autre code de modifier l'état de l'objet différé ou de signaler son état en appelant deferred.promise(), qui renvoie un objet Promise restreint. 🎜🎜Lorsque l'objet différé est résolu, tous les doneCallbacks ajoutés via deferred.then ou deferred.done seront appelés. Les fonctions de rappel sont exécutées dans l'ordre dans lequel elles sont ajoutées. Les paramètres args passés à deferred.resolve() seront transmis à chaque fonction de rappel. Lorsque l'objet différé entre dans l'état résolu, tout doneCallbacks ajouté sera exécuté immédiatement avec les paramètres passés à .resolve(). 🎜🎜🎜Syntaxe🎜🎜🎜deferred.resolveWith( context [, args ] )🎜🎜🎜🎜jQuery1.5 a ajouté cette fonction🎜🎜🎜Description du paramètre🎜🎜🎜🎜🎜Paramètre🎜🎜Description🎜 🎜🎜 🎜🎜🎜contexte🎜 🎜 🎜Type d'objet🎜 Passez l'objet contextuel à la fonction de rappel terminé (doneCallbacks) 🎜🎜🎜🎜args🎜🎜🎜Type de tableau🎜 Passez un paramètre facultatif à la fonction de rappel terminé (doneCallbacks)🎜🎜🎜🎜

Valeur de retour

deferred.resolveWith() renvoie un Objet différé


<span style="font-size: 18px;">deferred.state()</span></code ><code><span style="font-size: 18px;">deferred.state()</span>

deferred.state() 函数用于确定一个Deferred(延迟)对象的当前状态。

主要是用于调试,例如,在准备拒绝(reject)一个延迟对象前,判断它是否已经处于 resolved 状态。

注意:
deferred.state() 方法返回一个字符串,代表Deferred(延迟)对象的当前状态。Deferred 对象可以在三种状态之一:

  • pending” : Deferred 对象是尚未完成状态 。
  • resolved” : Deferred 对象是在解决状态,这意味着对象的 deferred.resolve() 或者
    deferred.resolveWith()已被调用并且 doneCallbacks 已被调用(或在被调用的过程中)
  • rejected” : Deferred 对象是在被拒绝的状态,这意味着对象的 deferred.reject() 或者
    deferred.rejectWith() 已被调用并且 failCallbacks 已被调用(或在被调用的过程中) 。

语法

  • deferred.state()

jQuery1.7 新增该函数

返回值

deferred.state() 返回的是一个 String类型


<span style="font-size: 18px;">deferred.pipe()</span>

deferred.pipe() 函数用于过滤 and/or 链式延迟对象的工具方法。

注意:从jQuery 1.8开始, deferred.pipe() 方法过时。使用 deferred.then() 代替它。

从jQuery 1.8开始, deferred.pipe() 方法过时. 应该使用deferred.then() 代替它。

deferred.pipe()方法返回一个新的Promise对象,用于过滤状态或通过函数返回的延迟对象的值,传递给Promise对象对应的done()、fail() 方法
doneFilter和failFilter函数过滤原先deferred(延迟)的解决/拒绝的状态和值。
从 jQuery 1.7开始,该方法还接受一个progressFilter函数,用来过滤任何访问deferred(延迟)的notify或notifyWith 方法。

这些过滤器可以随着 pipe()返回的 promise 对象的 done()或fail() 回调函数的调用,返回一个新值,或返回其它可见对象(Deferred, Promise, 等等),这些可见对象传递了自身的解决(resolve) / 拒绝(reject)状态和传递给 pipe promise 回调函数的返回的值 La fonction

deferred.state() est utilisée pour déterminer l'état actuel d'un objet différé.

Principalement utilisé pour le débogage, par exemple, avant de se préparer au rejet d'un objet différé, déterminez s'il est déjà dans l'état résolu.

    Remarque :
    La méthode deferred.state() renvoie une chaîne représentant l'état actuel de l'objet Deferred. Les objets différés peuvent être dans l'un des trois états suivants :
"
en attente

" : Les objets différés sont dans un état inachevé.

"
    resolved
  • " : L'objet Deferred est dans l'état résolu, ce qui signifie que la fonction deferred.resolve() ou
    deferred.resolveWith() de l'objet a été appelée et doneCallbacks a été appelée (ou dans l'état appelé process )
"
rejected

" : L'objet Deferred est dans l'état rejeté, ce qui signifie que la fonction deferred.reject() ou
deferred.rejectWith() de l'objet a été appelée et les failCallbacks ont été appelés (ou en étant appelé).

Syntaxe

deferred.state() jQuery1.7 a ajouté cette fonction

Valeur de retour

deferred . state() renvoie un String typedeferred. ) la fonction est une méthode utilitaire permettant de filtrer et/ou de chaîner des objets différés. utilisé pour filtrer le statut ou la valeur de l'objet différé renvoyé par la fonction, passé au done() correspondant, échoue () de la méthode Promise object )
Les fonctions doneFilter et failFilter filtrent le statut résolu/rejeté et la valeur du différé d'origine (différé).
À partir de jQuery 1.7, cette méthode accepte également une fonction progressFilter pour filtrer toutes les méthodes notify ou notifyWith qui accèdent au différé (différé). deferred.pipe( [doneFilter ] [, failFilter ] )
<span style="font-size: 18px;">deferred.pipe()</span>
Remarque : Depuis jQuery 1.8, la méthode deferred.pipe() est obsolète. Utilisez plutôt deferred.then(). À partir de jQuery 1.8, la méthode deferred.pipe() est obsolète.deferred.then() doit être utilisée à la place. La méthode deferred.pipe() renvoie un nouvel objet Promise,
Ces filtres peuvent renvoyer une nouvelle valeur lorsque la fonction de rappel done() ou fail() de l'objet promise renvoyé par pipe() est appelée, ou renvoyer d'autres objets visibles (Deferred, Promise, etc.). code>Passez son propre statut de résolution/rejet et la valeur de retour transmise à la fonction de rappel de promesse de tube. Si null est utilisé comme fonction de filtre, ou si aucune fonction de filtre n'est spécifiée, la même valeur sera utilisée comme valeur d'origine lorsque la promesse de canal est résolue ou rejetée. Syntaxe
🎜🎜🎜 Cette fonction est nouvelle dans jQuery 1.6 et obsolète dans 1.8 🎜🎜🎜🎜deferred.pipe( [doneFilter ] [, failFilter ] [, progressFilter ] )🎜🎜🎜🎜jQuery1.7 a ajouté cette fonction, 1.8 est obsolète🎜🎜🎜paramètre description🎜🎜🎜🎜🎜paramètre🎜🎜 description🎜🎜🎜🎜🎜🎜doneFilter🎜🎜 🎜Type de fonction 🎜 Fonction facultative, lorsqu'elle est retardée get 🎜🎜🎜🎜failFilter🎜🎜🎜Type de fonction🎜 Fonction facultative appelée lorsque le délai est rejeté 🎜🎜🎜🎜

返回值

deferred.pipe() 返回的是一个 * Promise对象*

示例&说明

过滤解决值:

var defer = $.Deferred(),
   filtered = defer.pipe(function( value ) {//当延迟对象解决时被调用
       // 传递给 pipe promise 回调函数的返回的值为10
        return value * 2;
    });
defer.resolve( 5 );//延迟对象被解决  调用pipe() return 10
filtered.done(function( value ) {//filtered 传递之前返回的值 10
    alert( "值是(2*5 =) 10: " + value );//弹出框输出:值是(2*5 =) 10:10
});

过滤拒绝值:

var defer = $.Deferred(),
//延迟得到解决时调用回调函数为null
//延迟得到拒绝的回调函数传递值value * 3 给Promise对象filtered 的fail的回调函数
        filtered = defer.pipe( null, function( value ) {
            return value * 3;
        });

    defer.reject( 6 );//延迟对象被拒绝 调用pipe() return 18
    filtered.fail(function( value ) {
     alert( "值是(3*6=)18:" + value );//弹出框输出:值是(3*6 =) 18:18
    });

链任务(?)

var request = $.ajax( url, { dataType: "json" } ),
    chained = request.pipe(function( data ) {
        //request返回值给url2
        return $.ajax( url2, { data: { user: data.userId } } );
    });

    chained.done(function( data ) {
        // 通过第一个请求取回data值提供给URL2
    });

<span style="font-size: 18px;">deferred.then()</span>

deferred.then() 函数当Deferred(延迟)对象被解决/拒绝或仍在进行中时,调用添加处理程序。

注意:

  • 如果没有这种类型的回调是需要的,参数可以为 null 。或者使用.done(),.fail()或者 .progress()设置只有一种未经过滤的状态或值的回调类型。
  • 从jQuery 1.8开始, 方法返回一个新的 promise ,可以通过一个函数过滤延迟对象的状态和值,用来替换现在过时的deferred.pipe() 方法。
  • 回调是依照他们被添加时的顺序执行的,由于 deferred.then 返回 Promise 对象,可以链接其它的 Promise 对象,包括附加的 .then() 方法。

doneFilter 和 failFilter函数过滤原延迟对象的解决/拒绝的状态和值。
progressFilter 函数过滤任何调用原有的延迟对象的notify 和 notifyWith的方法。
这些过滤器函数可以返回一个新的值传递给的 Promise 对象的.done() 或 .fail() 回调,或他们可以返回另一个观察的对象(延迟对象,Promise 对象等)传递给它的解决/拒绝的状态和值,Promise 对象的回调。
如果过滤函数是空,或没有指定,promise(承诺)将得到与原来值相同解决(resolved)或拒绝(rejected)。

语法

  • deferred.then( doneFilter [, failFilter ] [, progressFilter ] )

    jQuery1.8新增该函数

  • deferred.then1.8-( doneCallbacks, failCallbacks)

    jQuery1.5新增该函数,1.8移除

  • deferred.then1.8-( doneCallbacks, failCallbacks[, progressFilter ] )

    jQuery1.7新增该函数,1.8移除

参数说明

参数说明
doneFilterFunction类型 可选 当Deferred(延迟)对象得到解决时被调用的一个函数
failFilterFunction类型 可选 当Deferred(延迟)对象得到拒绝时被调用的一个函数
progressFilterFunction类型 可选 当Deferred(延迟)对象生成进度通知时被调用的一个函数调用
doneCallbacksFunction类型 当Deferred(延迟)对象得到解决时被调用的一个函数或函数数组
failCallbacksFunction类型 当Deferred(延迟)对象得到拒绝时被调用的一个函数或函数数组
progressCallbacksFunction类型 当Deferred(延迟)对象生成进度通知时被调用的一个函数或函数数组

返回值

deferred.then() 返回 Promise 对象

示例&说明

HTML代码:

<button>过滤解决值</button>
<p></p>

过滤解决值:

var filterResolve = function() {
    var defer = $.Deferred(),
        //当延迟对象解决时被调用
        //过滤解决值给then()的返回Promise对象的完成回调函数
        filtered = defer.then(function( value ) {
            return value * 2;
        });

    defer.resolve( 5 );

    //添加Promise对象的完成回调函数
    filtered.done(function( value ) {
        $( "p" ).html( "值是 ( 2*5 = ) 10: " + value );
    });
};
$( "button" ).on( "click", filterResolve );

过滤拒绝值:

var defer = $.Deferred(),
//延迟得到解决时调用回调函数为null
//延迟得到拒绝的,回调函数过滤拒绝值 
//传递过滤的拒绝值 value * 3 给then()的返回Promise对象的拒绝回调函数fail
        filtered = defer.then( null, function( value ) {
            return value * 3;
        });

    defer.reject( 6 );//延迟对象被拒绝 调用then() return 18

    //then()的返回Promise对象添加拒绝回调函数,并获取过滤的拒绝值
    filtered.fail(function( value ) {
     alert( "值是(3*6=)18:" + value );//弹出框输出:值是(3*6 =) 18:18
    });

链任务(?)

var request = $.ajax( url, { dataType: "json" } ),
    chained = request.then(function( data ) {
        //request返回值给url2
        return $.ajax( url2, { data: { user: data.userId } } );
    });

    chained.done(function( data ) {
        // 通过第一个请求取回data值提供给URL2
    });

<span style="font-size: 18px;">deferred.catch()</span>

当Deferred对象被拒绝(reject)时,调用通过deferred.catch()添加的处理程序。

deferred.catch( fn ) 是 deferred.then( null, fn )的一个别名

语法

  • deferred.catch( failCallbacks )

jQuery 3.0 新增该函数

参数说明

参数说明
failCallbacksFunction类型 一个函数,当 Deferred 对象被拒绝(reject)时被调用

返回值

deferred.catch() 返回的是一个 Promise 对象

示例&说明

jQuery.get 方法返回一个jqXHR对象, 它是从Deferred对象派生的,当Deferred对象被拒绝(reject) 时,我们可以使用.catch方法来处理,jQuery示例代码:

$.get( "test.php" )
  .then( function() {
    alert( "$.get succeeded" );
  } )
  .catch( function() {
    alert( "$.get failed!" );
  } );

<span style="font-size: 18px;">deferred.promise()</span>

deferred.promise() 函数返回 Deferred(延迟)的 Promise 对象。

注意:

  • 方法允许一个异步函数阻止那些干涉其内部请求的进度(progress)或状态(status)的其它代码。

  • Promise 对象只包含 deferred 对象的一组方法,包括:done(),then(),fail(),isResolved(), isRejected(), always(), 这些方法只能观察一个 deferred 的状态;不包括任何用于改变状态的延迟方法(resolve, reject, notify, resolveWith, rejectWith, 和 notifyWith),因此Promise 对象无法更改 deferred 对象的内在状态

  • deferred.promise()也可以接受一个 target 参数,此时传入的 target 将被赋予 Promise 的方法,并作为结果返回,而不是创建一个新对象(这个方法可以用于在已经存在的对象上绑定 Promise 行为的情况)。

语法

  • deferred.promise( [target ] )

jQuery 1.5 新增该函数

参数说明

参数说明
targetObject类型 绑定 promise 方法的对象。

返回值

deferred.promise() 返回的是一个 Promise 对象

示例&说明

创建一个延迟对象,并设定两个延时时间是随机的定时器,分别用于受理(resolve)和拒绝(reject)延迟对象。无论哪一个先执行,都会调用其中一个回调函数。而另一个定时器则不会产生任何效果,因为在最先调用的那个定时器处理中,延迟对象已经处于完成状态(resolved 或 rejected 状态)。同时,还会设定一个定时器进度(progress)通知函数,用于进度通知处理,并在文档的 “body” 中显示 “working…”,以下为一次测试时的jQuery示例代码:

function asyncEvent(){
        var dfd = new jQuery.Deferred();

        var resolveValue=400+Math.random()*2000;
        var resolveTime=Math.floor(resolveValue)
        console.log("resolveTime"+resolveTime)//resolveTime:1890ms

        // 在一个随机的时间间隔之后 Resolve (解决状态)
        setTimeout(function(){
            dfd.resolve("欢呼");

        }, Math.floor(resolveTime));

        var rejectValue=400+Math.random()*2000;
        var rejectTime=Math.floor(rejectValue)
        console.log("rejectTime"+rejectTime)//rejectTime:1364ms

        // 在一个随机的时间间隔之后 reject (拒绝状态)
        setTimeout(function(){
            dfd.reject("对不起");
        },rejectTime);

        // 每半秒显示一个"working..."消息
        setTimeout(function working(){
            //"pending" : Deferred 对象是尚未完成状态
            //0ms 执行一次  500ms执行一次 1000ms执行一次
            //1364ms 执行  dfd.reject("对不起") 
            //传递拒绝值"对不起" 给拒绝过滤函数 alert( status+&#39;, 这次你失败了&#39; );
            if ( dfd.state() === "pending" ) {
                //向正在执行的Deferred 对象的回调函数列表传递参数
                dfd.notify("working... ");

                setTimeout(working, 500);
            }
        }, 1);

        // 返回 Promise 对象,调用者不能改变延迟对象
        return dfd.promise();
    }
    // 为异步函数附加一个done, fail, 和 progress 处理程序
//如果向 jQuery.when 传入一个延迟对象,那么会返回它的 Promise 对象(延迟方法的一个子集)
    $.when( asyncEvent() ).then(
        function(status){
            alert( status+&#39;, 事情进展顺利&#39; );
        },
        function(status){
            alert( status+&#39;, 这次你失败了&#39; );
        },
        function(status){
            $("body").append(status);
        }
    );

使用目标参数,产生现有对象的Promise对象:

// 现有对象
    var obj = {
        hello: function( name ) {
            alert( "Hello " + name );
        }
    },
    // 创建一个延迟 Deferred
    defer = $.Deferred();
    // 设置对象作为 promise
    defer.promise( obj );
    // Resolve (解决) 该对象
    defer.resolve( "John" );
    // 使用该对象作为 Promise,向受理列表中添加回调函数
    //延迟对象状态为解决,因此done 被调用
    obj.done(function( name ) {
        obj.hello( name ); //将弹出 "Hello John"
    }).hello( "Karl" ); // 将弹出 "Hello Karl";

<span style="font-size: 18px;">.promise()</span>

.promise() 函数返回一个 Promise 对象,观察某种类型被绑定到集合的所有行动,是否已被加入到队列中。

返回的 Promise 被链接到延迟对象上,保存在元素的 .data() 中。由于 .remove() 方法会移除元素上的 data,同时也会移除元素本身。所以,使用它会防止任何元素上未被受理的(unresolved) Promise 被受理(resolving)。如果有必要在元素的 Promise 被受理(resolved)之前,从 DOM 中移除该元素的话,请使用.detach() 来代替。之后再调用 .removeData()

注意:

  • .promise() 方法返回一个动态生成的 Promise,当绑定到集合中的所有特定动作(action)已经被加入或未被加入到队列中时,生成的 Promise 将被受理(resolve)。

语法

  • .promise( [type ] [, target ] )

jQuery 1.5新增

参数说明

参数说明
type可选/String类型 需要待观察队列类型。
target可选/PlainObject类型 将要绑定 promise 方法的对象。

默认情况下, type的值是”fx” ,这意味着返回被受理(resolve)的 Promise 对象的时机,是在所有被选中元素的动画都完成时发生的。

如果提供target参数,.promise()在该参数上添加方法,然后返回这个对象,而不是创建一个新的。它适用于在一个已经存在的对象上添加 Promise 行为的情况。

返回值

.promise()方法返回一个动态生成的 Promise对象

示例&说明

1.在一个没有激活动画的集合上调用 .promise()
相关的jQuery示例代码:

//在一个没有激活动画的集合上调用 .promise(),返回一个被受理(resolved)的 Promise
var div = $( "<div />" );
    div.promise().done(function( arg1 ) {
        //弹出 "true"
        alert( this === div && arg1 === div );
    });

2.当所有的动画结果时(包括那些在动画回调函数和之后添加的回调函数中初始化的动画),受理(Resolve)返回的 Promise,相关HTML代码 :

<style type="text/css">
//没有样式不易观察执行效果,因此添加样式设置
    div{
        height:100px;
        width:200px;
        border:2px solid #334455;
        margin-top:2px;
    }
</style>
<button>Go</button>
<p>准备...</p>
<div></div>
<div></div>
<div></div>
<div></div>

当所有的动画结果时(包括那些在动画回调函数和之后添加的回调函数中初始化的动画),受理(Resolve)返回的 Promise,相关jQuery代码

$( "button" ).on( "click", function() {
        $( "p" ).append( "已开始..." );

        $( "div" ).each(function( i ) {
            $( this ).fadeIn().fadeOut( 100 * ( i + 51 ) );
        });

        $( "div" ).promise().done(function() {
            $( "p" ).append( " 完成! " );
        });
    });
    //效果显示好像是等动画执行完成后才执行done()方法

使用 $.when() 语句(.promise() 方法使得在 jQuery 集合中实现它变成了可能),受理(Resolve)返回的 Promise

var effect = function() {
        return $("div").fadeIn(800).delay(1200).append(" fadeOut! ").fadeOut();
    };
    $("button").bind( "click", function() {
        $("p").append( " 已开始... ");
        $.when( effect() ).done(function() {
            $("p").append(" 完成! ");
        });
        //效果显示好像是等动画执行完成后才执行done()方法
    });

【推荐学习:jQuery视频教程web前端视频

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Porce de variable PHP expliquée
1 Il y a quelques mois By 百草
Commentant le code en php
1 Il y a quelques mois By 百草
<🎜>: Grow A Garden - Guide complet des marchands itinérants
4 Il y a quelques semaines By Jack chen
Conseils pour écrire des commentaires PHP
1 Il y a quelques mois By 百草

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1511
276
Explication détaillée des méthodes de référence jQuery : guide de démarrage rapide Explication détaillée des méthodes de référence jQuery : guide de démarrage rapide Feb 27, 2024 pm 06:45 PM

Explication détaillée de la méthode de référence jQuery : Guide de démarrage rapide jQuery est une bibliothèque JavaScript populaire largement utilisée dans le développement de sites Web. Elle simplifie la programmation JavaScript et fournit aux développeurs des fonctions et fonctionnalités riches. Cet article présentera en détail la méthode de référence de jQuery et fournira des exemples de code spécifiques pour aider les lecteurs à démarrer rapidement. Présentation de jQuery Tout d'abord, nous devons introduire la bibliothèque jQuery dans le fichier HTML. Il peut être introduit via un lien CDN ou téléchargé

Comment utiliser la méthode de requête PUT dans jQuery ? Comment utiliser la méthode de requête PUT dans jQuery ? Feb 28, 2024 pm 03:12 PM

Comment utiliser la méthode de requête PUT dans jQuery ? Dans jQuery, la méthode d'envoi d'une requête PUT est similaire à l'envoi d'autres types de requêtes, mais vous devez faire attention à certains détails et paramètres. Les requêtes PUT sont généralement utilisées pour mettre à jour des ressources, comme la mise à jour de données dans une base de données ou la mise à jour de fichiers sur le serveur. Ce qui suit est un exemple de code spécifique utilisant la méthode de requête PUT dans jQuery. Tout d'abord, assurez-vous d'inclure le fichier de la bibliothèque jQuery, puis vous pourrez envoyer une requête PUT via : $.ajax({u

Utilisez jQuery pour modifier le contenu textuel de toutes les balises Utilisez jQuery pour modifier le contenu textuel de toutes les balises Feb 28, 2024 pm 05:42 PM

Titre : utilisez jQuery pour modifier le contenu textuel de toutes les balises. jQuery est une bibliothèque JavaScript populaire largement utilisée pour gérer les opérations DOM. En développement web, nous rencontrons souvent le besoin de modifier le contenu textuel de la balise de lien (une balise) sur la page. Cet article expliquera comment utiliser jQuery pour atteindre cet objectif et fournira des exemples de code spécifiques. Tout d’abord, nous devons introduire la bibliothèque jQuery dans la page. Ajoutez le code suivant dans le fichier HTML :

Conseils jQuery : modifiez rapidement le texte de toutes les balises a de la page Conseils jQuery : modifiez rapidement le texte de toutes les balises a de la page Feb 28, 2024 pm 09:06 PM

Titre : jQuery Astuces : Modifier rapidement le texte de toutes les balises a de la page En développement web, nous avons souvent besoin de modifier et d'exploiter des éléments de la page. Lorsque vous utilisez jQuery, vous devez parfois modifier le contenu textuel de toutes les balises de la page en même temps, ce qui peut économiser du temps et de l'énergie. Ce qui suit explique comment utiliser jQuery pour modifier rapidement le texte de toutes les balises a de la page et donne des exemples de code spécifiques. Tout d'abord, nous devons introduire le fichier de la bibliothèque jQuery et nous assurer que le code suivant est introduit dans la page : &lt

Comment supprimer l'attribut height d'un élément avec jQuery ? Comment supprimer l'attribut height d'un élément avec jQuery ? Feb 28, 2024 am 08:39 AM

Comment supprimer l'attribut height d'un élément avec jQuery ? Dans le développement front-end, nous rencontrons souvent le besoin de manipuler les attributs de hauteur des éléments. Parfois, nous pouvons avoir besoin de modifier dynamiquement la hauteur d'un élément, et parfois nous devons supprimer l'attribut height d'un élément. Cet article explique comment utiliser jQuery pour supprimer l'attribut height d'un élément et fournit des exemples de code spécifiques. Avant d'utiliser jQuery pour exploiter l'attribut height, nous devons d'abord comprendre l'attribut height en CSS. L'attribut height est utilisé pour définir la hauteur d'un élément

Comprendre le rôle et les scénarios d'application de eq dans jQuery Comprendre le rôle et les scénarios d'application de eq dans jQuery Feb 28, 2024 pm 01:15 PM

jQuery est une bibliothèque JavaScript populaire largement utilisée pour gérer la manipulation DOM et la gestion des événements dans les pages Web. Dans jQuery, la méthode eq() est utilisée pour sélectionner des éléments à une position d'index spécifiée. Les scénarios d'utilisation et d'application spécifiques sont les suivants. Dans jQuery, la méthode eq() sélectionne l'élément à une position d'index spécifiée. Les positions d'index commencent à compter à partir de 0, c'est-à-dire que l'index du premier élément est 0, l'index du deuxième élément est 1, et ainsi de suite. La syntaxe de la méthode eq() est la suivante : $("s

Introduction à la façon d'ajouter de nouvelles lignes à une table à l'aide de jQuery Introduction à la façon d'ajouter de nouvelles lignes à une table à l'aide de jQuery Feb 29, 2024 am 08:12 AM

jQuery est une bibliothèque JavaScript populaire largement utilisée dans le développement Web. Lors du développement Web, il est souvent nécessaire d'ajouter dynamiquement de nouvelles lignes aux tableaux via JavaScript. Cet article explique comment utiliser jQuery pour ajouter de nouvelles lignes à une table et fournit des exemples de code spécifiques. Tout d'abord, nous devons introduire la bibliothèque jQuery dans la page HTML. La bibliothèque jQuery peut être introduite dans la balise via le code suivant :

Comment savoir si un élément jQuery possède un attribut spécifique ? Comment savoir si un élément jQuery possède un attribut spécifique ? Feb 29, 2024 am 09:03 AM

Comment savoir si un élément jQuery possède un attribut spécifique ? Lorsque vous utilisez jQuery pour exploiter des éléments DOM, vous rencontrez souvent des situations dans lesquelles vous devez déterminer si un élément possède un attribut spécifique. Dans ce cas, nous pouvons facilement implémenter cette fonction à l'aide des méthodes fournies par jQuery. Ce qui suit présentera deux méthodes couramment utilisées pour déterminer si un élément jQuery possède des attributs spécifiques et joindra des exemples de code spécifiques. Méthode 1 : utilisez la méthode attr() et l'opérateur typeof // pour déterminer si l'élément a un attribut spécifique

See all articles