1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| const { fromEvent, interval } = rxjs;
const { merge, map, mergeAll, mergeMap } = rxjs.operators;
const click$ = fromEvent(document.documentElement, 'click');
const interval$ = interval(1000);
// merge 就是将两个流按时间顺序合并起来
click$.pipe(
merge(interval$)
).subscribe(
val => console.log(val)
)
// map 的作用使鼠标每点击一次,产生一个 interval
click$.pipe(
map(() => interval$)
).subscribe(
interval => interval.subscribe(
num => console.log(num)
)
)
// mergeAll 将上述两次 subscribe 合并成一次(多阶降为一阶)
click$.pipe(
map(() => interval$),
mergeAll()
).subscribe(
num => console.log(num)
)
// mergeMap 合并了 map 和 mergeAll
click$.pipe(
mergeMap(() => interval$)
).subscribe(
num => console.log(num)
)
|