Maison >interface Web >js tutoriel >'.then(function(a){ return a; })' est-il nécessaire dans les chaînes de promesses ?
Chaînage des promesses : comprendre ".then(function(a){ return a; })"
Lorsque vous travaillez avec des chaînes de promesses, il est il est courant de rencontrer des instructions telles que ".then(function(a){ return a; })". Cette syntaxe apparaît dans le code :
var getEvents = function(participantId) { return new models.Participant() .query({where: {id: participantId}}) .fetch({withRelated: ['events'], require: true}) .then(function(model) { return model; }); };
La question se pose : cette fonction est-elle fonctionnellement identique au renvoi direct de fetch(), sans le ".then()" supplémentaire ?
La réponse : un non-opération
Oui. ".then(function(a){ return a; })" est en fait une non-opération (no-op) pour les promesses. Il renvoie la même promesse, agit de la même manière et peut être appelé de manière équivalente.
Raisonnement :
Les promesses sont utilisées pour représenter des opérations asynchrones. Lorsqu'une promesse est résolue, elle transmet son résultat à la promesse suivante de la chaîne via la fonction "then". Cependant, lorsque la fonction « puis » renvoie simplement l'entrée, elle n'ajoute aucune valeur à la chaîne.
Pourquoi l'auteur aurait pu l'utiliser :
Le l'inclusion du ".then()" apparemment redondant peut être attribuée à l'une des deux raisons suivantes :
Résultat :
Dans la plupart des cas, ".then(function(a){ return a; })" est inutile et peut être omis sans affecter le comportement souhaité. C'est un espace réservé qui ne sert à rien et qui doit être supprimé pour une meilleure clarté du code.
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!