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);
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!