我想将我的() -> 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)
}
}