2017-04-05 4 views
1

ホバーとぼかしでそれぞれ2つの観測値hover$unhover$が発生しました。他のシーケンスが発生した場合に観測をキャンセルする

unhover$は、それが遅すぎるのを遅らせるためにdebounceTime(500)を持っています。

今、このタイムラインを考えてみます。

[ 0ms] hover triggered 
[ 50ms] unhover 500ms debounce started 
[ 100ms] hover triggered 
[ 550ms] unhover triggered 

は、どのように私は新しい値がhover$列によって放出されたときに、保留されている最初のunhover$を「キャンセル」ことができますか?

答えて

2

通知者Observableが値を発行した場合、takeUntilを使用して、あなたの観測対象を登録解除することができます。

このような何か:

unhover$ 
.debounceTime(500) 
.switchMap(evt => Rx.Observable.of(evt) 
    .takeUntil(hover$) 
) 
.subscribe(console.log); 
関連する問題