【发布时间】:2017-12-14 12:17:33
【问题描述】:
给定一个每秒发出字符串的 observable,我需要另一个 observable 来收集这些元素并每秒发出一个完整的列表。
func oneAtATime() -> Observable<String> {
return Observable.create{ observable in
DispatchQueue.global().async {
let main = DispatchQueue.main
for i in 0..<10 {
sleep(1)
main.async{
observable.onNext("Element\(i)")
}
}
main.async{
observable.onCompleted()
}
}
return Disposables.create()
}
}
这是我目前拥有的:
let oneEverySecond = oneAtATime()
var accEverySecond : Observable<[String]> = oneEverySecond.reduce([],accumulator: +)
其中 + 是一个在数组中插入元素的函数。
问题是我看到完整的元素列表只有在完成之后。我不是每秒都会收到一个新列表。
有什么想法吗?
【问题讨论】:
标签: reactive-programming rx-swift reactive