Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie kann ich asynchrone Ausnahmen mit Bluebird Promises behandeln?

DDD
Freigeben: 2024-10-26 04:36:02
Original
719 Leute haben es durchsucht

How Can I Handle Asynchronous Exceptions with Bluebird Promises?

Behandeln asynchroner Ausnahmen mit Bluebird Promises

Bei der Arbeit mit asynchronen Routinen kann die Ausnahmebehandlung schwierig zu verwalten sein. Versprechen, eine Schlüsselfunktion von Bluebird.js, bieten eine strukturierte Möglichkeit, asynchrone Ausnahmen zu behandeln.

Die Herausforderung

In Ihrem Codebeispiel wird ein setTimeout in a verwendet unverbindlicher Rückruf. Wenn innerhalb dieses Rückrufs ein Fehler ausgelöst wird, wird Bluebirds Catch nicht ausgelöst, was zum Absturz des Programms führt.

Bluebirds Promise-Struktur

Promises fangen Ausnahmen ab, die innerhalb ihres Rückrufs ausgelöst werden Funktionen (then/catch/Promise-Konstruktor). Um Ausnahmen von asynchronen Rückrufen zu behandeln, ist es wichtig, sie in ein Versprechen zu packen.

Elegante Ausnahmebehandlung

In Ihrem Szenario können Sie den setTimeout-Rückruf in ein Versprechen einschließen . Der Catch-Block fängt dann den Fehler ab:

<code class="javascript">function getPromise() {
  return new Promise(function(resolve, reject) {
    setTimeout(resolve, 500);
  }).then(function() {
    console.log("hihihihi");
    throw new Error("Oh no!");
  });
}</code>
Nach dem Login kopieren

Ablehnung ist der Schlüssel

Wirf niemals Fehler direkt innerhalb von Non-Promise-Callbacks. Lehnen Sie stattdessen das umgebende Versprechen ab. Verwenden Sie bei Bedarf Try-Catch, um eine ordnungsgemäße Behandlung sicherzustellen.

<code class="javascript">function getPromise() {
  return new Promise(function(resolve, reject) {
    try {
      setTimeout(resolve, 500);
    } catch (err) {
      reject(err);
    }
  });
}</code>
Nach dem Login kopieren

Durch die Einhaltung dieser Prinzipien können Sie eine ordnungsgemäße Ausnahmebehandlung sowohl in Node.js als auch im Browser sicherstellen, selbst bei betrügerischen asynchronen Rückrufen.

Das obige ist der detaillierte Inhalt vonWie kann ich asynchrone Ausnahmen mit Bluebird Promises behandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!