Heim  >  Artikel  >  Web-Frontend  >  Können ECMAScript 6-Versprechen storniert werden?

Können ECMAScript 6-Versprechen storniert werden?

Susan Sarandon
Susan SarandonOriginal
2024-10-25 05:31:29746Durchsuche

Can ECMAScript 6 Promises Be Cancelled?

ECMAScript 6 Promise Chains abbrechen

Gibt es eine Möglichkeit, die .thens aus einer JavaScript Promise-Instanz zu entfernen?

ECMAscript 6-Versprechen sind standardmäßig nicht stornierbar. Trotz laufender Diskussionen gibt es in ES6 keine offizielle Lösung.

Alternativen:

  • Unterklassen: Das Erstellen Ihrer eigenen Promise-Implementierung ermöglicht Stornierung, aber ihre Implementierung kann unzuverlässig sein.
  • Userland Promise-Implementierungen: Bibliotheken von Drittanbietern wie cancelable-promise und Promise-cancellation bieten stornierbare Versprechen.

Aktuelle Lösung zum Entsperren von Tests:

Implementieren Sie ein benutzerdefiniertes cancelTest-Flag innerhalb des Test-Frameworks, das Abbruchanfragen abfragt. Wenn die Zeitüberschreitung auftritt, setzen Sie cancelTest auf true und rufen Sie Assert.fail() auf, um den Test als fehlgeschlagen zu markieren.

Weitere Aktualisierungen:

Nach der Behebung des ersten Problems ( Während fn.call() ein nicht erfasster Fehler aufgetreten ist, wurde die then()-Anweisung aufgrund eines nicht erfassten Fehlers in der Testfunktion selbst nicht aufgerufen. Durch das Abfangen des Fehlers kann das Testversprechen ordnungsgemäß aufgelöst werden, sodass der Test abgeschlossen und die then()-Anweisung ausgeführt werden kann.

Das obige ist der detaillierte Inhalt vonKönnen ECMAScript 6-Versprechen storniert werden?. 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