RxJS zip

2020-10-13 17:28 更新

组合多个 Observable 来创建一个 Observable,其值是根据每个值的顺序来计算的 输入的 Observables。

zip<O extends ObservableInput<any>, R>(...observables: (O | ((...values:ObservedValueOf<O>[]) => R))[]): Observable<ObservedValueOf<O>[] | R>

参量

可观察的 类型: `(O ((...values: ObservedValueOf[]) => R))[]`。

returns

Observable<ObservedValueOf<O>[] | R>:

描述

如果最后一个参数是一个函数,则此函数用于从输入值中计算创建的值。 否则,将返回输入值的数组。

结合不同来源的年龄和姓名

import { zip, of } from 'rxjs';
import { map } from 'rxjs/operators';


let age$ = of<number>(27, 25, 29);
let name$ = of<string>('Foo', 'Bar', 'Beer');
let isDev$ = of<boolean>(true, true, false);


zip(age$, name$, isDev$).pipe(
  map(([age, name, isDev]) => ({ age, name, isDev })),
)
.subscribe(x => console.log(x));


// outputs
// { age: 27, name: 'Foo', isDev: true }
// { age: 25, name: 'Bar', isDev: true }
// { age: 29, name: 'Beer', isDev: false }

超载

zip(v1: O1, resultSelector: (v1: ObservedValueOf<O1>) => R): Observable<R>

参量 类型
v1 类型: O1
resultSelector 类型: (v1: ObservedValueOf) => R

returns Observable<R>

zip(v1: O1, v2: O2, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>) => R): Observable<R>

参量 类型
v1 类型:O1
v2 类型:O2
resultSelector 类型:(v1: ObservedValueOf, v2: ObservedValueOf) => R

returns Observable<R>

zip(v1: O1, v2: O2, v3: O3, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>) => R): Observable<R>

参量 类型
v1 类型:O1
v2 类型:O2
v3 类型: O3
resultSelector 类型: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf) => R

returns Observable<R>

zip(v1: O1, v2: O2, v3: O3, v4: O4, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>) => R): Observable<R>

参量 类型
v1 类型:O1
v2 类型:O2
v3 类型: O3
v4 类型: O4
resultSelector 类型: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf) => R

returns Observable<R>

zip(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>, v5: ObservedValueOf<O5>) => R): Observable<R>

参量 类型
v1 类型:O1
v2 类型:O2
v3 类型: O3
v4 类型: O4
v5 类型: O5
resultSelector 类型: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf) => R

returns Observable<R>

zip(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6, resultSelector: (v1: ObservedValueOf<O1>, v2: ObservedValueOf<O2>, v3: ObservedValueOf<O3>, v4: ObservedValueOf<O4>, v5: ObservedValueOf<O5>, v6: ObservedValueOf<O6>) => R): Observable<R>

参量 类型
v1 类型:O1
v2 类型:O2
v3 类型: O3
v4 类型: O4
v5 类型: O5
v6 类型: O6
resultSelector 类型: (v1: ObservedValueOf, v2: ObservedValueOf, v3: ObservedValueOf, v4: ObservedValueOf, v5: ObservedValueOf, v6: ObservedValueOf) => R

returns Observable<R>

zip(v1: O1, v2: O2): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>]>

参量 类型
v1 类型:O1
v2 类型:O2

returns Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>]>

zip(v1: O1, v2: O2, v3: O3): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>]>

参量 类型
v1 类型:O1
v2 类型:O2
v3 类型: O3

returns Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>]>

zip(v1: O1, v2: O2, v3: O3, v4: O4): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>]>

参量 类型
v1 类型:O1
v2 类型:O2
v3 类型: O3
v4 类型: O4

returns Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>]>

zip(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>]>

参量 类型
v1 类型:O1
v2 类型:O2
v3 类型: O3
v4 类型: O4
v5 类型: O5

returns Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>]>

zip(v1: O1, v2: O2, v3: O3, v4: O4, v5: O5, v6: O6): Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>, ObservedValueOf<O6>]>

参量 类型
v1 类型:O1
v2 类型:O2
v3 类型: O3
v4 类型: O4
v5 类型: O5
v6 类型: O6

returns Observable<[ObservedValueOf<O1>, ObservedValueOf<O2>, ObservedValueOf<O3>, ObservedValueOf<O4>, ObservedValueOf<O5>, ObservedValueOf<O6>]>

zip(array: O[]): Observable<ObservedValueOf<O>[]>

参量 类型
数组 类型: O[]

returns Observable<ObservedValueOf<O>[]>

zip(array: any[]): Observable<R>

参量 类型
数组 类型: any[]

returns Observable<R>

zip(array: O[], resultSelector: (...values: ObservedValueOf<O>[]) => R): Observable<R>

参量 类型
数组 类型: O[]
resultSelector 类型: (...values: ObservedValueOf[]) => R

returns Observable<R>

zip(array: any[], resultSelector: (...values: any[]) => R): Observable<R>

参量 类型
v1 类型:O1
数组 类型: any[]
resultSelector 类型: (...values: any[]) => R

returns Observable<R>

zip(...observables: O[]): Observable<ObservedValueOf<O>[]>

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

returns Observable<ObservedValueOf<O>[]>

zip(...observables: (O ((...values: ObservedValueOf<O>[]) => R))[]): Observable<R>

参量 类型
可观察的 类型: (O  ((...values: ObservedValueOf[]) => R))[]

returns Observable<R>

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

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

returns Observable<R>

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

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号