2017-09-21 5 views
0

オペレータは配列からオブザーバブルを作成しますが、別のイベントストリームの変更/カウントに基づいて次の観測可能な値だけを出力します。Observableからの放出を別のイベントストリームに基づいて遅らせる方法はありますか?

const scroller$ = Rx.Observable.of(1,2,3,4); 
Rx.Observable.fromEvent(document, 'click'); // need help here 
scroller$.subscribe(console.log) 

// click // 1 

// click // 2 

// click // 3 

// click // 4 

答えて

1

あなたはそれを行うためにzipを使用することができます。

const scroller$ = Rx.Observable.of(1, 2, 3, 4); 
scroller$.zip(
    Rx.Observable.fromEvent(document, 'click'), 
    (value, event) => value // Specify a projection function to ignore the event 
).subscribe(console.log); 

zipのドキュメントがhereですが、それはだ...進行中の作業。

基本的に、zipは、入力観測値によって放出された値をロックステップで結合します。したがって、最初のイベントが放出されると、それは結合されてscroller$の最初の値で放出され、2番目のイベントが発生するまで何も放出されません。

zipは、したがって、イベントではなく値のみに関心がある場合は、投影関数を使用してイベントを無視することができます。

+0

これを簡単に手続き的に書く方法はありますか? –

+0

@ ItayMoav-Malimovka RxJSを使用している場合、なぜそれをやりたいのか分かりません。私はそれが本質的に反応的であるので、いいえ、そうではないと言うだろう。 – cartant

+0

何が起きているのか理解するのに役立ちます。手続き的に一度見ると、私はRxJSの考え方を開発するまで、より簡単にそれを翻訳することができます。 –

関連する問題