ホームページ >ウェブフロントエンド >jsチュートリアル >**JavaScript Promise のチェーンをキャンセルできますか?**

**JavaScript Promise のチェーンをキャンセルできますか?**

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-25 14:30:02889ブラウズ

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

バニラ ECMAScript 6 Promise チェーンのキャンセル

問題

JavaScript Promise インスタンスのイベント ハンドラー .thens をクリアすることは可能ですか?

バックグラウンド

特定のフレームワークを使用したテストがタイムアウトになると、タイムアウト Promise はassert.fail() を呼び出してテストを失敗としてマークします。ただし、テスト Promise (結果) がまだ解決を待っているため、テストは実行を続けます。

望ましい解決策

理想的には、結果変数の残りの .thens をクリアして、それ以上の処理を防ぐことができます。

Answer

残念ながら、ECMAScript 6 には Promise またはその .thens ハンドラーをキャンセルするための組み込みメソッドはありません。 ES 委員会は、将来の ECMAScript バージョンで採用される可能性のある解決策についてまだ議論しています。

考えられる回避策

正式な解決策が実装されるまでは、次の回避策を検討できます:

  • サブクラス化: キャンセル ロジックを組み込んだ Promise の独自のサブクラスを作成します。
  • ユーザーランド Promise 実装: キャンセル機能を提供するサードパーティの Promise 実装を検討します。 cancelable-promise や Promise-cancellation など。

追加メモ

問題で言及されている特定のケースでは、テストが終了しない問題は、テスト機能。これを解決するには、テスト関数内でエラーを適切に処理する必要があります。

以上が**JavaScript Promise のチェーンをキャンセルできますか?**の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。