我想将() -> Unit
参数更改为Reactive Observer。
例如,我有一个此类:
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
}
}
有人能很好地解决这个问题吗? 谢谢
答案 0 :(得分:1)
您可以通过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)
}
}