Obwohl es die ESLint-Regel „No-Return-Await“ gibt, die von der Verwendung von „Return-Await“ abrät, werden einige Entwickler möglicherweise davon Gebrauch machen dieses Muster. Obwohl dies kein wesentliches Leistungsproblem darstellt, wird in der Beschreibung der Regel erwähnt, dass „Return Wait“ „zusätzliche Zeit einführt, bevor das übergeordnete Versprechen aufgelöst oder abgelehnt wird“.
Das „Einfache Beispiel“ der MDN-Dokumentation zeigt jedoch die Verwendung von Return warten, ohne dass dies Leistungsbedenken mit sich bringt. Um diese Diskrepanz zu beleuchten, untersuchen wir die tatsächlichen Auswirkungen von Return Wait.
Im Wesentlichen ist Return Wait ein redundanter Vorgang. Die Promise-Auflösung oder -Ablehnung erfolgt bereits innerhalb der asynchronen Funktion, und returnawait wartet einfach erneut darauf, bevor der Wert zurückgegeben wird. Dieser zusätzliche Vorgang kann potenziell zu einer minimalen Ausführungszeit führen, hat aber wahrscheinlich keine nennenswerten Auswirkungen auf die Leistung.
Ein Fall, in dem „Return Wait“ einen bedeutenden Unterschied macht, ist in der Ausnahmebehandlung:
try { ... return await ...; } ...
Bei Verwendung von „await“ lösen Ablehnungen innerhalb der asynchronen Funktion eine Ausnahme aus und stellen so sicher, dass die Catch- und Final-Handler ausgeführt werden. Eine einfache Rückgabe würde jedoch einfach den Try-Block verlassen und diese Handler überspringen.
Während Return Wait im Allgemeinen kein Leistungsproblem darstellt, wird es als schlechter Stil angesehen und kann auf einen Mangel hinweisen des Verständnisses von Versprechen und Asynchronität/Warten. In den meisten Fällen ist dies unnötig und sollte vermieden werden. Im Zusammenhang mit der Fehlerbehandlung wird das Warten auf die Rückkehr jedoch für die ordnungsgemäße Weitergabe von Ausnahmen unerlässlich.
Das obige ist der detaillierte Inhalt vonIst „Return Wait' ein Leistungsengpass?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!