より転載 翼に約束プラグをキャンセルします
constのmakeCancelable =(約束は)=> { hasCanceled_ = falseをしてみましょう。 CONST wrappedPromise =新しいプロミス((決意、リジェクト)=> { promise.then((ヴァル)=> hasCanceled_拒否({isCanceled:真}):解決(ヴァル) ); promise.catch((エラー)=> hasCanceled_ ?拒否({isCanceled:真}):(エラー)を拒否 ); }); リターン{ 約束:wrappedPromise、 キャンセル(){ hasCanceled_ = TRUE。 }、 }。 }。
//コール のconst somePromise =新しい約束(R = >のsetTimeout(R、1000)); //は、 非同期操作の作成 constの解約= makeCancelable(somePromiseを); // 非同期操作をキャンセルする機能を追加 解約 .promise .then( ()=>はconsole.log( '解決')) .catch(({isCanceled、...}エラー)=>はconsole.log( 'isCanceled'、isCanceled)); //非同期動作のキャンセル cancelable.cancelを() ;