Inhaltsverzeichnis
Hat „.then(function(a){ return a; })“ irgendwelche Auswirkungen auf Promises?
Das Rätsel lösen
Warum die Then() beibehalten?
Best Practices
Heim Web-Frontend js-Tutorial Tut „.then(function(a){ return a; })' tatsächlich etwas für Versprechen?

Tut „.then(function(a){ return a; })' tatsächlich etwas für Versprechen?

Nov 10, 2024 pm 02:58 PM

Does

Hat „.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;
    });
};
Nach dem Login kopieren

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});
};
Nach dem Login kopieren

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Ersetzen Sie Stringzeichen in JavaScript Ersetzen Sie Stringzeichen in JavaScript Mar 11, 2025 am 12:07 AM

Ersetzen Sie Stringzeichen in JavaScript

JQuery überprüfen, ob das Datum gültig ist JQuery überprüfen, ob das Datum gültig ist Mar 01, 2025 am 08:51 AM

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

JQuery Get Element Polsterung/Rand JQuery Get Element Polsterung/Rand Mar 01, 2025 am 08:53 AM

JQuery Get Element Polsterung/Rand

10 JQuery Accords Registerkarten 10 JQuery Accords Registerkarten Mar 01, 2025 am 01:34 AM

10 JQuery Accords Registerkarten

10 lohnt 10 lohnt Mar 01, 2025 am 01:29 AM

10 lohnt

HTTP-Debugging mit Knoten und HTTP-Konsole HTTP-Debugging mit Knoten und HTTP-Konsole Mar 01, 2025 am 01:37 AM

HTTP-Debugging mit Knoten und HTTP-Konsole

JQuery fügen Sie Scrollbar zu Div hinzu JQuery fügen Sie Scrollbar zu Div hinzu Mar 01, 2025 am 01:30 AM

JQuery fügen Sie Scrollbar zu Div hinzu

Benutzerdefinierte Google -Search -API -Setup -Tutorial Benutzerdefinierte Google -Search -API -Setup -Tutorial Mar 04, 2025 am 01:06 AM

Benutzerdefinierte Google -Search -API -Setup -Tutorial

See all articles