【问题标题】:pass array of observables to zip将 observables 数组传递给 zip
【发布时间】:2017-05-28 14:45:37
【问题描述】:

我有一个可观察的数组,想传递给Rx.Observable.zip。我试过了,它根本没有被订阅。

代码 sn-p(只是示例):

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

【问题讨论】:

    标签: javascript typescript rxjs rxjs5


    【解决方案1】:

    运算符zip 只接受解压数组。

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

    如果你使用的是 ES6,你也可以使用 ... 的解构赋值:

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

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

    【讨论】:

    • 首先,感谢您的回答。不,我没有使用 javascript,是否也可以这样做?
    • 我检查了ES6 spec,您也可以使用Rx.Observable.zip(...arr$);。如果您使用的是 ES5,请使用 Rx.Observable.zip(sourceOne, sourceTwo, sourceThree);
    • 如果你使用的是ES5,你可以使用:Rx.Observable.zip.apply(null, arr$);
    • 请注意,ES6 是 javascript。它只是比您可能使用的更高版本,例如ES5。
    猜你喜欢
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 2020-08-05
    • 2020-07-28
    • 2014-01-14
    • 1970-01-01
    • 2013-02-22
    • 1970-01-01
    相关资源
    最近更新 更多