如何将可观察的循环结果组合到RxSwift中的数组?

希姆斯·戈科斯

我有一个简单的数字流。我想做一些数学运算,然后按顺序在数组中收集结果。我怎样才能做到这一点 ?

func test (number : Int) -> Observable<Int> {
        let obs2 = Observable<Int>.create { (obs) -> Disposable in
            obs.onNext(number + 10)
            return Disposables.create()
        }

        return obs2
    }

let obs = Observable.from([1,2,3,4]).flatMap { (item) -> Observable<Int> in
            self.test(number: item)
            }.map { (result) -> Int in
                return result
            }

//I want this: 
obs.subscribe(onNext : {[Int] in 
     ...
     ...
}

我不能将每个int合并到一个数组中。

汤玛
let arrayObservable = obs.reduce([]) { acc, element in acc + [element] }

Reduce将以一个空数组开始,并将流的每个元素附加到该数组。然后.next,在源obs完成之后,它将仅发出一个事件,并累积结果。


另一种选择是使用buffer运算符。但是请记住,结果数组最多只能包含一定数量的元素,并且timeSpan即使源未发出任何项目,它也将发出every

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将映射值组合到可观察数组?

如何将可观察结果链接到rxjs中的以下可观察结果

如何将可观察数组求和成数字

Angular9/rxjs6.5:如何将可观察对象数组转换为可观察对象属性数组?

RxSwift 中的可观察元素数组

如何将可观察列表转换为数组列表?爪哇

如何将可观察对象和属性(字段)的数组映射到仅属性?

如何将额外的变量组合到数组/方法中?

如何使可变字典在RxSwift中可观察

* RxJs *如何将多个ajax组合到一个不需要序列的可观察对象

角度-如何将可观察的访问令牌添加到传出的HTTP请求中?

如何将可观察值传递给rxjs主题?

如何将可观察值转换为可能值?

将可观察数组从URL加载到模板中

RxSwift可观察数组排序

如何将可观察集转换为可观察列表

RxSwift如何拆分进度和结果可观察值?

RxSwift:观察可观察数组中的每个元素可观察属性

循环可观察数组,并与每个元素的其他可观察数组合并

IOS RxSwift从可观察数组创建可观察数组

RxSwift:将可补对象映射到可观察对象吗?

如何在RxSwift中初始化可观察属性?

如何将来自多个循环的数据组合到多维数组中的同一个数字键中?

如何将两个可观察的数组合并为一个数组?

如何将可观察值除以动态数量的CounterSet并在不同线程上运行每个可观察值?

Learning Rx:如何将可观察的字符序列解析为可观察的字符串序列?

RxJS将可观察到的内容追加到打字稿中的可观察到的数组列表中

RxSwift来自数组的可观察序列

RxSwift:将可观察的延迟到另一个可观察的完成之前?