gpt4 book ai didi

RXJS:交替组合流元素

转载 作者:行者123 更新时间:2023-12-04 23:20:24 25 4
gpt4 key购买 nike

我想交替组合多个流的元素:

var print = console.log.bind(console);

var s1 = Rx.Observable.fromArray([1, 1, 5]);
var s2 = Rx.Observable.fromArray([2, 9]);
var s3 = Rx.Observable.fromArray([3, 4, 6, 7, 8]);

alternate(s1, s2, s3).subscribe(print); // 1, 2, 3, 1, 9, 4, 5, 6, 7, 8

怎么看 alternate的函数定义?

最佳答案

在处理从数组创建的 observable 时使用 zip 和 concatMap(如您的示例),或在处理本质上异步的 observable 时使用 zip 和 flatMap。

Rx.Observable
.zip(s1, s2, s3, function(x,y,z) { return [x,y,z]; })
.concatMap(function (list) { return Rx.Observable.from(list); })
.subscribe(print); // 1, 2, 3, 1, 9, 4

请注意,一旦源可观察对象之一完成,这将不再继续。那是因为 zip是严格“平衡的”,它会等到所有源都有匹配的事件。在处理完整的源代码时,您想要的是一个有点松散的 zip 版本。

关于RXJS:交替组合流元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28656988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com