2017-10-26 12 views
0

RxJSインターバルを使用している特定の状況がありますが、その瞬間にそのインターバルを停止する必要があるかもしれません。私は、cancel()やstop()のような簡単なものがあると仮定しました。 clearTimeoutと同様です。一度それが行くと、間隔を停止することは可能ですか?もしそうでなければ、別の方法があります。RxJSのObservableでインターバルを停止する方法

基本的に私は大きな進歩を遂げています。しかし、そのステップを止めて新しいタスクを続ける必要がある外部の事態が起こります。私はそれが私がドキュメントに欠けている単純なものだと思っています。ありがとう

+0

可能な重複、[ここ](https://stackoverflow.com/questions/41070443/rxjava-how-to-stop-and-resume-a-hot-observable-interval) – udalmik

答えて

5

これは、一度それが行くと間隔を停止することは可能ですか?

.takeUntil演算子を使用すると、他の観測可能な発光が観測されたときに観測を完了できます。もちろん、あなたにとって有用な方法で値を放出するまで、他の観察可能に設定する必要がありますが、ここでは5秒後に間隔を停止例です:

Rx.Observable.interval(100) 
 
    .takeUntil(Rx.Observable.timer(5000)) 
 
    .subscribe(val => console.log(val));
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/5.5.2/Rx.min.js"></script>

1

ちょうど退会:あなたにもsubscribeのコールバックの内側unsubscribe()を呼び出すことができます

const subscription = Observable.interval(1000) 
    ... 
    .subscribe() 

... 

subscription.unsubscribe(); 

注意を。

関連する問題