将一组observable传递给zip

时间:2017-01-13 09:16:13

标签: javascript typescript rxjs rxjs5

我有一组observable并希望传递给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));

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

1 个答案:

答案 0 :(得分:11)

运算符zip仅接受解压缩的数组。

Rx.Observable.zip(sourceOne, sourceTwo, sourceThree, ...);

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

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

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