【发布时间】:2016-07-05 15:59:21
【问题描述】:
给出以下示例(kotlin 代码)
val subject = PublishSubject.create<Int>()
val stream = subject.map {
println("mapping")
it * 2
}
stream.forEach { println("A: $it") }
stream.forEach { println("B: $it") }
subject.onNext(1)
subject.onCompleted()
输出将是
mapping
A: 2
mapping
B: 2
我想要实现的是源 observable 被映射一次,所有订阅者都得到结果,但不为每个订阅者执行映射操作......
喜欢这个
mapping
A: 2
B: 2
在我的情况下,我在延迟和性能至关重要的地方进行了非常昂贵的计算,我有一个热门的 observable 作为来源和很多订阅者...
我们如何重用操作符执行?以及通常不同的映射操作?
【问题讨论】:
标签: java rx-java reactive-programming kotlin