RxJS merge

2020-10-13 18:45 更新

创建一个输出 Observable,该输出同时从每个给定的输入 Observable 发出所有值。

  1. merge<T, R>(...observables: any[]): Observable<R>

参量

可观察的 输入可观察对象以合并在一起。

returns

Observable<R>:一个 Observable,它发出作为每个输入 Observable 的结果的项目。

描述

通过将多个 Observable 的值混合到一个 Observable中,将其平展在一起。

合并大理石图

merge订阅每个给定的输入 Observable(作为参数),并简单地将所有值从所有输入 Observable 转发(不进行任何转换)到输出 Observable。仅当所有输入 Observable 完成后,输出 Observable 才完成。输入 Observable 传递的任何错误将立即在输出 Observable 上发出。

例子

合并两个 Observable:1s 间隔和点击

  1. import { merge, fromEvent, interval } from 'rxjs';
  2. const clicks = fromEvent(document, 'click');
  3. const timer = interval(1000);
  4. const clicksOrTimer = merge(clicks, timer);
  5. clicksOrTimer.subscribe(x => console.log(x));
  6. // Results in the following:
  7. // timer will emit ascending values, one every second(1000ms) to console
  8. // clicks logs MouseEvents to console everytime the "document" is clicked
  9. // Since the two streams are merged you see these happening
  10. // as they occur.

合并3个 Observable,但只有 2 个同时运行

  1. import { merge, interval } from 'rxjs';
  2. import { take } from 'rxjs/operators';
  3. const timer1 = interval(1000).pipe(take(10));
  4. const timer2 = interval(2000).pipe(take(6));
  5. const timer3 = interval(500).pipe(take(10));
  6. const concurrent = 2; // the argument
  7. const merged = merge(timer1, timer2, timer3, concurrent);
  8. merged.subscribe(x => console.log(x));
  9. // Results in the following:
  10. // - First timer1 and timer2 will run concurrently
  11. // - timer1 will emit a value every 1000ms for 10 iterations
  12. // - timer2 will emit a value every 2000ms for 6 iterations
  13. // - after timer1 hits its max iteration, timer2 will
  14. // continue, and timer3 will start to run concurrently with timer2
  15. // - when timer2 hits its max iteration it terminates, and
  16. // timer3 will continue to emit a value every 500ms until it is complete

超载

merge(v1: any, scheduler: SchedulerLike): Observable<T>

参量: 类型:
v1 类型:any
调度器 类型:SchedulerLike

returnsObservable<T>

merge(v1: any, concurrent: number, scheduler: SchedulerLike): Observable<T>

参量: 类型:
v1 类型:any
同时 类型:number
调度器 类型:SchedulerLike

returnsObservable<T>

merge(v1: any, v2: any, scheduler: SchedulerLike): Observable<T | T2>

参量: 类型:
v1 类型:any
v2 类型:any
调度器 类型:SchedulerLike
returnsObservable<T | T2>

merge(v1: any, v2: any, concurrent: number, scheduler: SchedulerLike): Observable<T | T2>

参量: 类型:
v1 类型:any
v2 类型:any
同时 类型:number
调度器 类型:SchedulerLike
returnsObservable<T | T2>

merge(v1: any, v2: any, v3: any, scheduler: SchedulerLike): Observable<T | T2 | T3>

参量: 类型:
v1 类型:any
v2 类型:any
v3 类型:any
调度器 类型:SchedulerLike
returnsObservable<T | T2 | T3>

merge(v1: any, v2: any, v3: any, concurrent: number, scheduler: SchedulerLike): Observable<T | T2 | T3>

参量: 类型:
v1 类型:any
v2 类型:any
v3 类型:any
同时 类型:number
调度器 类型:SchedulerLike
returnsObservable<T | T2 | T3>

merge(v1: any, v2: any, v3: any, v4: any, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4>

参量: 类型:
v1 类型:any
v2 类型:any
v3 类型:any
v4 类型:any
调度器 类型:SchedulerLike
returnsObservable<T | T2 | T3 | T4>

merge(v1: any, v2: any, v3: any, v4: any, concurrent: number, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4>

参量: 类型:
v1 类型:any
v2 类型:any
v3 类型:any
v4 类型:any
同时 类型:number
调度器 类型:SchedulerLike
returnsObservable<T | T2 | T3 | T4>

merge(v1: any, v2: any, v3: any, v4: any, v5: any, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5>

参量: 类型:
v1 类型:any
v2 类型:any
v3 类型:any
v4 类型:any
v5 类型:any
调度器 类型:SchedulerLike
returnsObservable<T | T2 | T3 | T4 | T5>

merge(v1: any, v2: any, v3: any, v4: any, v5: any, concurrent: number, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5>

参量: 类型:
v1 类型:any
v2 类型:any
v3 类型:any
v4 类型:any
v5 类型:any
同时 类型:number
调度器 类型:SchedulerLike
returnsObservable<T | T2 | T3 | T4 | T5>
merge(v1: any, v2: any, v3: any, v4: any, v5: any, v6: any, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5 | T6>
参量: 类型:
v1 类型:any
v2 类型:any
v3 类型:any
v4 类型:any
v5 类型:any
v6 类型:any
调度器 类型:SchedulerLike
returnsObservable<T | T2 | T3 | T4 | T5 | T6>

merge(v1: any, v2: any, v3: any, v4: any, v5: any, v6: any, concurrent: number, scheduler: SchedulerLike): Observable<T | T2 | T3 | T4 | T5 | T6>

参量: 类型:
v1 类型:any
v2 类型:any
v3 类型:any
v4 类型:any
v5 类型:any
v6 类型:any
同时 类型:number
调度器 类型:SchedulerLike
returnsObservable<T | T2 | T3 | T4 | T5 | T6>

merge(v1: any): Observable<T>

参量: 类型:
v1 类型:any

returnsObservable<T>

merge(v1: any, concurrent?: number): Observable<T>

参量: 类型:
v1 类型:any
同时 可选的默认值为undefined。  类型:number

returnsObservable<T>

merge(v1: any, v2: any): Observable<T | T2>

参量: 类型:
v1 类型:any
v2 类型:any
returnsObservable<T | T2>

merge(v1: any, v2: any, concurrent?: number): Observable<T | T2>

参量: 类型:
v1 类型:any
v2 类型:any
同时 可选的。默认值为undefined。类型:number
returnsObservable<T | T2>

merge(v1: any, v2: any, v3: any): Observable<T | T2 | T3>

参量: 类型:
v1 类型:any
v2 类型:any
v3 类型:any
returnsObservable<T | T2 | T3>

merge(v1: any, v2: any, v3: any, concurrent?: number): Observable<T | T2 | T3>

参量: 类型:
v1 类型:any
v2 类型:any
v3 类型:any
同时 可选的。默认值为undefined。类型:number
returnsObservable<T | T2 | T3>

merge(v1: any, v2: any, v3: any, v4: any): Observable<T | T2 | T3 | T4>

参量: 类型:
v1 类型:any
v2 类型:any
v3 类型:any
v4 类型:any
returnsObservable<T | T2 | T3 | T4>

merge(v1: any, v2: any, v3: any, v4: any, concurrent?: number): Observable<T | T2 | T3 | T4>

参量: 类型:
v1 类型:any
v2 类型:any
v3 类型:any
v4 类型:any
同时 可选的。默认值为undefined。类型:number
returnsObservable<T | T2 | T3 | T4>

merge(v1: any, v2: any, v3: any, v4: any, v5: any): Observable<T | T2 | T3 | T4 | T5>

参量: 类型:
v1 类型:any
v2 类型:any
v3 类型:any
v4类型:any。v5类型:any
returnsObservable<T | T2 | T3 | T4 | T5>

merge(v1: any, v2: any, v3: any, v4: any, v5: any, concurrent?: number): Observable<T | T2 | T3 | T4 | T5>

参量: 类型:
v1 类型:any
v2 类型:any
v3 类型:any
v4 类型:any
v5 类型:any
同时 可选的。默认值为undefined。类型:number
returnsObservable<T | T2 | T3 | T4 | T5>

merge(v1: any, v2: any, v3: any, v4: any, v5: any, v6: any): Observable<T | T2 | T3 | T4 | T5 | T6>

参量: 类型:
v1 类型:any
v2 类型:any
v3 类型:any
v4 类型:any
v5 类型:any
v6 类型:any
returnsObservable<T | T2 | T3 | T4 | T5 | T6>

merge(v1: any, v2: any, v3: any, v4: any, v5: any, v6: any, concurrent?: number): Observable<T | T2 | T3 | T4 | T5 | T6>

参量: 类型:
v1 类型:any
v2 类型:any
v3 类型:any
v4 类型:any
v5 类型:any
v6 类型:any
同时 可选的。默认值为undefined。类型:number
returnsObservable<T | T2 | T3 | T4 | T5 | T6>

merge(...observables: any[]): Observable<T>

参量: 类型:
可观察的 类型:any[]

returnsObservable<T>

merge(...observables: any[]): Observable<T>

参量: 类型:
可观察的 类型:any[]

returnsObservable<T>

merge(...observables: any[]): Observable<R>

参量: 类型:
可观察的 类型:any[]

returnsObservable<R>

merge(...observables: any[]): Observable<R>

参量: 类型:
可观察的 类型:any[]

returnsObservable<R>

也可以看看

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号