Tag: 被动编程

什么样的对象是反应式Java订阅?

在Reactive Java中,我们被告知.subscribe()调用返回“一个订阅引用”。 但Subscription是一个接口 ,而不是一个类。 那么实现这个接口的是什么样的对象呢? 我们有这个控制权吗? 有类可以创建和返回几种不同类型的Subscription ,但一个人做了什么? 如果我写 Subscription mSub = Subscriptions.create(<some Action0>); mSub = someObservable.subscribe(); 我的刚刚创建的Subscription不会被任何.subscribe()调用返回的内容覆盖吗? 你如何使用你创建的Subscription ? (在一个有点相关的说明中, Subscriptions.unsubscribed()是什么意思,它返回一个订阅,取消订阅什么也不做,因为它已经取消订阅了,呃?)

可以重用操作符执行

鉴于下面的例子(科特林代码) 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 我想要实现的是源观察被映射一次,所有的订户得到的结果,但不执行映射操作,每一个… 喜欢这个 mapping A: 2 B: 2 在我的情况下,我有非常昂贵的计算正在进行的延迟和性能是至关重要的,我有一个热点观察源作为一个来源和大量的用户… 我们如何重用运算符执行? 和一般不同的映射操作?