理解 RxJava Create 和 fromCallable 操作符
在本文中,我们将了解RxJava Create 和 fromCallable 操作符。我们可以根据需要的技能集在所需的函数之间进行选择。我们在使用 RxJava 操作符时经常会犯错误。让我们直截了当,以免出错。
结合实例,我们将研究以下操作。
- 创建
- 从可调用
1.创建
应该创建 RxJava 操作符。
Build Operator:使用一个函数从头开始创建一个 Observable。
使用 Create Operator,我们可以做一项工作并不断地一个一个地发出值,直到操作完成。
让我们看一个例子:
Java
Observable.create { shooter ->
// do something
if (!shooter.isDisposed) {
shooter.onNext("GeeksforGeeks")
}
// do and emit
if (!shooter.isDisposed) {
shooter.onNext("GfG")
}
// on finish
if (!shooter.isDisposed) {
shooter.onComplete()
}
}
.subscribeOn(Schedulers.io())
.subscribe { item ->
Log.d("Android", "item : $item")
}
Java
Observable.fromCallable {
// perform a task and then return
return@fromCallable "Geeks for Geeks"
}
输出:
"GeeksforGeeks" "GfG"
这个运算符从零开始创建一个 observable,但即使在此之后,它一次也只能发射 1 个项目,因此它返回一个项目!
Java
Observable.fromCallable {
// perform a task and then return
return@fromCallable "Geeks for Geeks"
}
输出:
Geeks for Geeks
这并不意味着 fromCallable 等同于 Single。我们稍后会看到它是如何真正变化的。他们都将继续推迟行动,直到并且除非他们进行一些观察。这意味着它使任务变得“懒惰”。
因此,以下是 Create 和 fromCallable运算符之间的主要区别:
- Create 可以产生多种东西,而 fromCallable 只能产生一种。
- 没有简单的方法可以查看fromCallable中的 isDisposed 是否存在于 Create 中。因此,如果它在处理完一个项目后射击,那么该 throwable 将被处理到全局错误处理程序。这意味着应用程序将被终止。
结论
我们可以在这里使用 RxJava Create 来解决这个问题,希望这篇文章可以消除任何可能产生的疑问,消除知识的迷雾。