从数组中生成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
答案 0 :(得分: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
将输入observables发出的值组合在一起。因此,当第一个事件被发射时,它将与scroller$
中的第一个值组合并发出,并且在第二个事件发生之前不会发出任何其他事件,等等。
zip
可以传递一个函数来投影组合值,所以如果你只对值感兴趣 - 而不是事件 - 你可以使用投影函数来忽略这个事件。