Maison  >  Article  >  interface Web  >  ".then(function(a){ return a; })" est-il nécessaire dans les chaînes de promesses ?

".then(function(a){ return a; })" est-il nécessaire dans les chaînes de promesses ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-16 00:08:02494parcourir

Is

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 :

  • Erreur : Il est possible que l'auteur ait simplement commis une erreur ou ait mal compris le but de promesses.
  • Manque de compréhension : L'auteur aurait pu croire à tort que chaque promesse avait besoin d'une fonction « alors », même si elle ne faisait rien.

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!

Déclaration:
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