Heim > Web-Frontend > js-Tutorial > Wie gehen verkettete Versprechen mit Ablehnungen um und verbreiten sie?

Wie gehen verkettete Versprechen mit Ablehnungen um und verbreiten sie?

Linda Hamilton
Freigeben: 2024-12-09 07:11:07
Original
999 Leute haben es durchsucht

How Do Chained Promises Handle and Propagate Rejections?

Verkettete Versprechen bestehen die Ablehnung nicht

In einer Versprechenskette hängt die Auflösung eines Versprechens davon ab, wie seine Fehlerbehandlungsfunktionen auf eine Ablehnung reagieren. Die Methode .then() gibt ein neues Versprechen für das Ergebnis der Rückruffunktion zurück. Wenn kein Erfolgs- oder Fehlerhandler bereitgestellt wird, wird das Ergebnis direkt an das nächste Versprechen übergeben.

Wenn der Fehler behandelt wird, wird das resultierende Versprechen mit dem vom Fehlerhandler zurückgegebenen Wert erfüllt. Um den Fehler erneut auszulösen und in der Kette weiterzugeben, werfen Sie stattdessen err.

Wenn im Widget-Shop-Beispiel ein Versprechen in der Kette einen Fehler empfängt, sollte es diesen weiterleiten, um sicherzustellen, dass nachfolgende Versprechen eingehen Die Kette erhält keinen Erfolgswert.

Wenn in einer Datenbankabfragekette ein Fehler in der ersten Abfrage auftritt, kann die Kette durch Weglassen des Fehlerhandlers fortgesetzt werden, auch wenn die nachfolgenden Versprechen bestehen erhält möglicherweise keine aussagekräftigen Werte.

db.query({ parent_id: value }).then(function(query_result) {
    return db.put({
        parent_id: query_result[0].parent_id
    });
}).then(function(first_value_result) {
    return db.put({
        reference_to_first_value_id: first_value_result.id
    });
}.then(values_successfully_entered);
Nach dem Login kopieren

Um zu verhindern, dass nachfolgende Versprechen in einer Kette nach einer Ablehnung Erfolgswerte erhalten, sollte die Fehlerbehandlungsfunktion entweder den Fehler auslösen oder ein abgelehntes Versprechen zurückgeben.

Das obige ist der detaillierte Inhalt vonWie gehen verkettete Versprechen mit Ablehnungen um und verbreiten sie?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage