Heim > Artikel > Web-Frontend > Ist „.then(function(a){ return a; })“ in Promise Chains notwendig?
Versprechen verketten: „.then(function(a){ return a; })“ verstehen
Bei der Arbeit mit Versprechenketten ist es so Es kommt häufig vor, dass Anweisungen wie „.then(function(a){ return a; })“ auftreten. Diese Syntax erscheint im Code:
var getEvents = function(participantId) { return new models.Participant() .query({where: {id: participantId}}) .fetch({withRelated: ['events'], require: true}) .then(function(model) { return model; }); };
Es stellt sich die Frage: Ist diese Funktion funktional identisch mit der direkten Rückgabe von fetch(), ohne das zusätzliche „.then()“?
Die Antwort: Ein No-Op
Ja. „.then(function(a){ return a; })“ ist praktisch eine No-Operation (no-op) für Versprechen. Es gibt das gleiche Versprechen zurück, verhält sich auf die gleiche Weise und kann äquivalent aufgerufen werden.
Begründung:
Versprechen werden zur Darstellung asynchroner Vorgänge verwendet. Wenn ein Versprechen aufgelöst wird, gibt es sein Ergebnis über die Funktion „Dann“ an das nächste Versprechen in der Kette weiter. Wenn die „Dann“-Funktion jedoch einfach die Eingabe zurückgibt, fügt sie der Kette keinen Wert hinzu.
Warum der Autor sie möglicherweise verwendet hat:
Die Die Einbeziehung des scheinbar redundanten „.then()“ kann auf eines von zwei zurückzuführen sein Gründe:
Fazit:
In den meisten Fällen ist „.then(function(a){ return a; })“ unnötig und kann es auch sein weggelassen werden, ohne das gewünschte Verhalten zu beeinträchtigen. Es handelt sich um einen Platzhalter, der keinen Zweck erfüllt und zur besseren Klarheit des Codes entfernt werden sollte.
Das obige ist der detaillierte Inhalt vonIst „.then(function(a){ return a; })“ in Promise Chains notwendig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!