Heim >Web-Frontend >js-Tutorial >Ist die Verwendung von async/await innerhalb eines Promise-Konstruktors ein Anti-Pattern?

Ist die Verwendung von async/await innerhalb eines Promise-Konstruktors ein Anti-Pattern?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-16 17:41:11376Durchsuche

Is Using async/await Inside a Promise Constructor an Anti-Pattern?

Async/await in einem Promise()-Konstruktor verwenden: Ein Anti-Pattern?

In diesem Szenario verwenden Sie ein async .eachLimit-Funktion zum Verwalten gleichzeitiger Vorgänge. Ihre Verwendung von async/await innerhalb der Promise-Konstruktorfunktion wirft jedoch Bedenken auf.

Promise Constructor Anti-Pattern

Verwendung von Versprechen innerhalb der Executor-Funktion des Promise-Konstruktors, wie Sie was wir tun, gilt als Anti-Muster. Das Hauptrisiko besteht, wie in Ihrem Code veranschaulicht, darin, dass möglicherweise Fehler unkontrolliert durchschlüpfen.

Außerdem führt Async/Await zu zusätzlicher Komplexität, wodurch diese Probleme möglicherweise verschleiert werden. Zum Beispiel in Ihrem Code:

let p = new Promise(resolve => {
  ""(); // TypeError
  resolve();
});

(async () => {
  await p;
})().catch(e => console.log("Caught: " + e)); // Catches it.

Hier bleibt der TypeError im Promise-Konstruktor unbemerkt, wird aber bei Verwendung von async/await abgefangen. Solche Überraschungen können problematisch sein.

Daher kann Ihr Code Ihnen zwar den Zugriff auf Werte in verschachtelten Rückrufen ermöglichen, es ist jedoch wichtig, sorgfältig mit Fehlern umzugehen und diese Anti-Patterns zu vermeiden, um robusten und wartbaren Code zu gewährleisten.

Das obige ist der detaillierte Inhalt vonIst die Verwendung von async/await innerhalb eines Promise-Konstruktors ein Anti-Pattern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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