将 () -> 单元替换为简单的 RxJava 解决方案



我想将我的() -> Unit参数更改为响应式观察者。

例如,我有这个类:

class ExampleClass {
var onSuccess: (() -> Unit?)? = null
private fun doSomething(){
//...
onSuccess?.invoke()
//...
}
}

有一个"成功"单元。当它完成任务时,我称之为它。

fun doAnother(){
val instance = ExampleClass()
instance.onSuccess = {
// onSuccess run
}
}

这是我如何定义onSuccess的示例。

我正在寻找像这样的RxJava简单解决方案。

class ExampleClass {
var onSuccess: AnyMagic
private fun doSomething(){
//...
onSuccess.notify()
//...
}
}
fun doAnother(){
val instance = ExampleClass()
instance.onSuccess
.subscribe {
// RxJava
}
}

有人有很好的简单解决方案来更换此单元吗? 谢谢

您可以通过RxRelay进行操作。

获取依赖项

implementation 'com.jakewharton.rxrelay2:rxrelay:2.0.0'

那是代码

val myRelay: PublishRelay<String> = PublishRelay.create()
private fun doSomething() {
myRelay.accept("Hello world")
}
fun doAnother() {
myRelay.subscribe { s ->
println(s)
}
}

相关内容

  • 没有找到相关文章

最新更新