約束をキャンセルする[ウェブ]

より転載  翼に約束プラグをキャンセルします

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を() ;  

  

おすすめ

転載: www.cnblogs.com/0616--ataozhijia/p/12013618.html