Tag: 反应式编程

如果可能完成,则将Maybe从另一个源转换为单个

我想建立一个Repository类,返回一个Single 。 该类首先应该查找返回Maybe的Cache ,如果Maybe完成了我的Service ,返回Single interface Cache { fun getSomething(): Maybe } interface Service { fun getSomething(): Single } class Repository ( private val cache: Cache, private val service: Service ) { fun getSomething(): Single { return cache.getSomething() .????(feed.getSomething()) //onCompleteTransformToSingle() or similar } } 我已经通过JavaDoc进行了搜索,但是似乎并不存在这种情况下的变换器。 有处理这个好方法吗?

以递归方式将Rx选项组合成Obserbles

比方说,我有一个名为s_0的Single ,它可以从Ttypes发出一个元素t_0 ,也可以失败(在某些语言中,这可能是Single )。 那是: s_0: — t_0 // Success OR s_0: — X // Failure Ttypes的实例有一个next()方法,它返回Ttypes的一个可选的Single ( Kotlin中的Single? )。 这种行为导致一个能够发射一个T实例链的Single实例链,其中每个单独的s_i可以发出一个能够返回下一个单独的s_i+1的元素t_i+1 ,这将发出一个元素t_i+1等等,直到最后一个元素t_n-1没有返回单个或任何单数失败: s_0: — t_0 ↓ s_1: — t_1 ↓ s_2: — t_2 … ↓ s_n-1: — t_n-1 ↓ null OR s_0: — t_0 ↓ s_1: — t_1 ↓ s_2: — t_2 … ↓ s_i: […]

我怎样才能从可观察到的价值

我在我的Kotlin项目中有这个function。 我正在使用ReactiveNetwork – Android库监听网络连接状态以及与RxJava Observables的Internet连接。 我是新来的反应式编程,现在我需要重构这个方法在很多地方使用这个。 我怎样才能重构此方法只是返回互联网连接状态(isConnected)? private fun downloadProductIfConnected(arguments: Bundle){ ReactiveNetwork.checkInternetConnectivity().subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe{ isConnected -> if (isConnected){ downloadAndOpenProduct(arguments) }else{ displayConnectionErrorDialog(arguments) } } }

如何做一个组,并使用RxJava和Kotlin收集?

我有Observable和Rate是一个简单的对象: Rate(val value:String){} Rates(val rates: List) 我想将Observable改为Observable<HashMap 。 Rates(arrayOf(Rate(“1”),Rate(“2”), Rate(“3”),Rate(“3”), Rate(“2”),Rate(“2”)))我期望的结果: (1 -> 1) (2 -> 3) (3 -> 2) (4 -> 0) (5 -> 0) 我开始创建这样的东西: service.getRates() .flatMap {it-> Observable.from(it.rates) } .filter { !it.value.isNullOrEmpty() } .groupBy {it -> it.value} .collect({ HashMap()}, { b, t -> b.put(t.key, t.count???)} 但我卡在这里,我不知道所有的价值? 我不知道如何添加空值(0),如果没有5个4.有没有办法使用rx做到这一点?

不明白如何使通量订阅在kotlin工作

我是新来的反应式编程。 我期待看到 test provider started Beat 1000 Beat 2000 在日志中,但是只有test provider started并且没有Beat或on complete消息。 看起来我想念一些东西 @Service class ProviderService { @PostConstruct fun start(){ val hb: Flux = Flux.interval(Duration.ofSeconds(1)).map { HeartBeat(it) } val provider = Provider(“test”, hb) } } //////////////////////// open class Provider(name: String, heartBests: Flux) { companion object { val log = LoggerFactory.getLogger(Provider::class.java)!! } init { log.info(“$name […]