Heim  >  Artikel  >  Web-Frontend  >  **Können Sie die Kette in JavaScript-Versprechen abbrechen?**

**Können Sie die Kette in JavaScript-Versprechen abbrechen?**

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-25 14:30:02779Durchsuche

**Can You Cancel the Chain in JavaScript Promises?**

Abbrechen einer Vanilla ECMAScript 6 Promise-Kette

Problem

Ist es möglich, die Event-Handler .thens für eine JavaScript Promise-Instanz zu löschen?

Hintergrund

Wenn bei einem Test, der ein bestimmtes Framework verwendet, eine Zeitüberschreitung auftritt, ruft das Timeout-Promise „assert.fail()“ auf, um den Test als fehlgeschlagen zu markieren. Der Test wird jedoch weiterhin ausgeführt, da das Testversprechen (Ergebnis) noch auf die Auflösung wartet.

Gewünschte Lösung

Idealerweise könnten die verbleibenden .thens in der Ergebnisvariablen gelöscht werden, um weiteres zu verhindern Ausführung des Tests.

Antwort

Leider gibt es in ECMAScript 6 keine integrierte Methode zum Abbrechen von Promises oder ihren .thens-Handlern. Das ES-Komitee diskutiert noch mögliche Lösungen, die in zukünftigen ECMAScript-Versionen übernommen werden könnten.

Mögliche Problemumgehungen

Bis eine offizielle Lösung implementiert ist, können Sie die folgenden Problemumgehungen in Betracht ziehen:

  • Unterklasse: Erstellen Sie Ihre eigene Unterklasse von Promise, die Stornierungslogik enthält.
  • Userland Promise-Implementierungen: Entdecken Sie Promise-Implementierungen von Drittanbietern, die Stornierungsfunktionen bereitstellen. B. cancelable-promise oder Promise-cancellation.

Zusätzliche Hinweise

In dem im Problem erwähnten speziellen Fall war das Problem, dass der Test nicht beendet wurde, auf einen nicht erfassten Fehler in zurückzuführen die Testfunktion. Um dieses Problem zu beheben, sollten Sie Fehler innerhalb der Testfunktion entsprechend behandeln.

Das obige ist der detaillierte Inhalt von**Können Sie die Kette in JavaScript-Versprechen abbrechen?**. 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