ato*_*tok 18 java reactive-programming kotlin rx-java
RxJava v1.0.13引入了一种新的Observable:rx.Single.它非常适合请求 - 响应模型,但缺少引入doOnNext()等运算符的标准副作用.因此,结果会发生很多事情要困难得多.
我的想法是用同一个Single实例的多个订阅替换doOnNext().但这可能导致底层工作多次完成:每次订阅一次.
示例rx.Single实现:
private class WorkerSubscribe<SomeData>() : Single.OnSubscribe<SomeData> {
override fun call(sub: SingleSubscriber<in SomeData>) {
try {
val result = fetchSomeData()
sub.onSuccess(result)
} catch(t: Throwable) {
sub.onError(t)
}
}
}
val single = Single.create<SomeData>(WorkerSubscribe())
Run Code Online (Sandbox Code Playgroud)
用法:
single.subscribe({}, {})
single.subscribe({}, {}) // Data is fetched for the second time
Run Code Online (Sandbox Code Playgroud)
是否有可能创建一个单独的实例,即使多次调用single.subscribe(),也不会多次fetchSomeData(),但缓存并返回相同的结果?
| 归档时间: |
|
| 查看次数: |
3266 次 |
| 最近记录: |