以下代码似乎永远不会起作用,因为这些组似乎没有终止,而takeLast()不知道最后一个是什么:
observableSequence
.groupBy { $0.key }
.map { groups in
groups
.takeLast(1)
.subscribe(onNext: { element in
print(element)
})
.disposed(by: self.disposeBag)
}
.subscribe()
.disposed(by: self.disposeBag)
答案 0 :(得分:0)
答案是肯定的。
Observable.from([1,2,3,4,5,6,7,8])
.groupBy { ($0 % 2) == 0 }
.subscribe(onNext: { group in
group
.takeLast(1)
.subscribe(onNext: { e in
print(e)
})
.disposed(by: self.disposeBag)
})
.disposed(by: self.disposeBag)
以上代码输出:
7
8
答案 1 :(得分:0)
我仍然无法获得原始更复杂的版本,但我发现了另一个更好的解决方案,即颠倒序列的顺序并使用take()而不是takeLast()。这是有效的,所以我认为序列没有终止(虽然我不明白为什么不这样做。)
无论如何,如果可以,最好采取take()而不是takeLast()。