


Tut „.then(function(a){ return a; })' tatsächlich etwas für Versprechen?
Nov 10, 2024 pm 02:58 PMHat „.then(function(a){ return a; })“ irgendwelche Auswirkungen auf Promises?
Bei der Arbeit mit Bluebird-Promises in Bookshelf kommt es bei Entwicklern oft zu Problemen Verwenden Sie ein ähnliches Muster wie das folgende:
var getEvents = function(participantId) { return new models.Participant() .query({where: {id: participantId}}) .fetch({withRelated: ['events'], require: true}) .then(function(model) { return model; }); };
Dieser Code wirft jedoch Fragen für diejenigen auf, die mit Versprechen nicht vertraut sind. Hat die Funktion then einen sinnvollen Einfluss auf das Gesamtverhalten des Codes? Könnte die folgende Implementierung ohne sie das gleiche Ergebnis erzielen?
var getEvents = function(participantId) { return new models.Participant() .query({where: {id: participantId}}) .fetch({withRelated: ['events'], require: true}); };
Das Rätsel lösen
Der Kern der Sache liegt in dem an then übergebenen Funktionsparameter. Von diesem Argument wird erwartet, dass es den Rückgabewert des vorhergehenden Versprechens in der Kette erhält. Es scheint also, dass die Rückgabe a; Die Anweisung innerhalb der Then-Funktion ist im Wesentlichen eine No-Op-Anweisung, da sie lediglich das empfangene Argument unverändert durchläuft.
Warum die Then() beibehalten?
Trotz ihrer scheinbaren Redundanz dient die Then-Funktion ein Zweck in bestimmten Anwendungsfällen. Ein Beispiel wäre, wenn das zurückgegebene Versprechen in der Kette anders behandelt werden muss. Es könnte beispielsweise protokolliert, in JSON konvertiert oder auf benutzerdefinierte Weise verarbeitet werden. Ein weiterer Vorteil besteht darin, dass die then-Funktion eine Fehlerbehandlung ermöglicht, obwohl dies je nach verwendeter Promise-Bibliothek auch durch done erreicht werden könnte.
Best Practices
Im Allgemeinen ist es ratsam, nur dann verwenden, wenn es wirklich erforderlich ist. Unnötige Funktionen können die Codebasis unnötig komplexer machen und das Fehlerpotenzial erhöhen. Als allgemeine Faustregel gilt: Integrieren Sie es nur dann, wenn das Ergebnis oder der Fehler des zurückgegebenen Versprechens explizit geändert oder verarbeitet werden muss.
Das obige ist der detaillierte Inhalt vonTut „.then(function(a){ return a; })' tatsächlich etwas für Versprechen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Ersetzen Sie Stringzeichen in JavaScript

JQuery überprüfen, ob das Datum gültig ist

HTTP-Debugging mit Knoten und HTTP-Konsole

JQuery fügen Sie Scrollbar zu Div hinzu

Benutzerdefinierte Google -Search -API -Setup -Tutorial
