2017-05-18 10 views
1

ユーザーのスケジュールを1日ごとに引き出すアプリがあります。彼らは日を横切ってスクロールし、各スクロール停止時にhttp.getを起動し、その日のスケジュールを取得します。保留中のhttpリクエストを角4 /イオン3でキャンセルします。

私たちが遭遇した問題は、スクロールして指を離してスクロールを続けている人々です。スライドストップとリクエストの発行との間に遅延があるようにタイムアウトを実装しましたが、あまりに長くすることはできませんが、依然として多くのhttp.getリクエストが発生します。

保留中のHTTPリクエストを新しいリクエストの開始時に取り消す方法が必要です。あなたが観測可能でswitchMapを使用する場合は

slideStop() { 
    ..gather date information and other relevant parameters.. 

    <stop any pending HTTP requests> 

    this.http.get() 
} 
+0

チェックこのhttps://stackoverflow.com/questions/36490926/how-to-cancel-a-httprequest-in-angular-2美しく働いたHTTP –

+0

おかげから退会について@AmrElAdawy – mycroft16

答えて

2

は、それが文書で述べたように、あなたがこの観測可能を再使用するときに保留中の要求をキャンセルします(https://angular.io/docs/ts/latest/guide/router.html#activatedroute-the-one-stop-shop-for-route-information

switchMap演算子は、実行することができますアクションをObservableの現在の値と比較し、それを新しいObservableにマップします。多くのrxjs演算子と同様に、switchMapはObservableとPromiseを処理して、それらが出力する値を取得します。

switchMapオペレータは、依然としてヒーローを取得している間にユーザーが経路を再ナビゲートすると、飛行中のリクエストもキャンセルします。

関連する問題