将一组observable传递给zip

zer*_*ing 6 javascript rxjs typescript rxjs5

我有一系列的观察者,想要传递给他们Rx.Observable.zip.我试过了,根本没有订阅.

代码片段(仅举例):

const sourceOne = Rx.Observable.of('Hello');
const sourceTwo = Rx.Observable.of('World!');
const sourceThree = Rx.Observable.of('Goodbye');
const sourceFour = Rx.Observable.of('World!');
const arr$ = [sourceOne, sourceTwo, sourceThree, sourceFour];

const zip$ = (a$) => Rx.Observable.zip(a$);

const subscribe = zip$(arr$).subscribe(val => console.log(val));
Run Code Online (Sandbox Code Playgroud)

有没有办法将数组传递给Rx.Observable.zip

mar*_*tin 15

运算符zip只接受解压缩的数组.

Rx.Observable.zip(sourceOne, sourceTwo, sourceThree, ...);
Run Code Online (Sandbox Code Playgroud)

如果您正在使用ES6,您还可以使用解构分配...:

const zip$ = (a$) => Rx.Observable.zip(...arr$);
Run Code Online (Sandbox Code Playgroud)

观看现场演示:https://jsbin.com/tinaxeq/1/edit?js,console