RxJS zip

2020-10-13 17:28 更新

組合多個 Observable 來創(chuàng)建一個 Observable,其值是根據(jù)每個值的順序來計算的 輸入的 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>:

描述

如果最后一個參數(shù)是一個函數(shù),則此函數(shù)用于從輸入值中計算創(chuàng)建的值。 否則,將返回輸入值的數(shù)組。

結(jié)合不同來源的年齡和姓名

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>[]>

參量 類型
數(shù)組 類型: O[]

returns Observable<ObservedValueOf<O>[]>

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

參量 類型
數(shù)組 類型: any[]

returns Observable<R>

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

參量 類型
數(shù)組 類型: O[]
resultSelector 類型: (...values: ObservedValueOf[]) => R。

returns Observable<R>

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

參量 類型
v1 類型:O1
數(shù)組 類型: 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>

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號