ホームページ >ウェブフロントエンド >jsチュートリアル >ECMAScript 6 の約束はキャンセルできますか?

ECMAScript 6 の約束はキャンセルできますか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-25 05:31:29835ブラウズ

Can ECMAScript 6 Promises Be Cancelled?

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

JavaScript Promise インスタンスから .thens を削除する方法はありますか?

ECMAscript 6 Promise はデフォルトではキャンセルできません。議論は続いていますが、ES6 には正式な解決策はありません。

代替案:

  • サブクラス化: 独自の Promise 実装を作成すると、次のことが可能になります。
  • Userland Promise 実装: cancelable-promise や Promise-cancellation などのサードパーティ ライブラリは、キャンセル可能な Promise を提供します。

テストのブロックを解除するための現在のソリューション:

キャンセル リクエストをポーリングするテスト フレームワーク内にカスタム cancelTest フラグを実装します。タイムアウトが発生した場合、cancelTest を true に設定し、assert.fail() を呼び出してテストを失敗としてマークします。

さらなる更新:

最初の問題を解決した後 ( fn.call()) 中にキャッチされなかったエラー、テスト関数自体のキャッチされなかったエラーのため、then() ステートメントは呼び出されませんでした。エラーをキャッチすることで、テストの Promise が正常に解決され、テストが終了して then() ステートメントが実行できるようになります。

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

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