当 Maybe 接收到 null 时不会调用 onError
onError is not called when Maybe receives null
我正在学习如何使用 Maybe observable。我创建了以下示例。如果
Maybe.just(value) I will receive the value in onSuccess callback.
在 Maybe.just(null) 的情况下,我希望从 onError 接收日志。但是,根据发布的代码,当我 运行 代码时,应用程序崩溃并且我没有收到任何日志。
你能告诉我为什么我没有收到来自 onError() 的任何日志吗?
代码
Maybe.just(null)
.subscribe(
i->Log.i("TAG:", "[onSuccess]: " + i),
err->Log.e("TAG", "[ERROR] err.getMessage(): " + err.getMessage()),
() -> Log.i("TAG", "[COMPLETED]: ")
);
您无法创建 Maybe
做 Maybe.just(null)
。它会抛出 NullPointerException
,这就是您的应用程序崩溃的原因。
有些人建议图书馆应该有 Create a Maybe from null in RxJava 的选项,但不幸的是,这不会发生:
Closing as won't happen. Static methods returning RxJava types can live on any external class.
这样做的解决方法是将其替换为:
Maybe.just(null)
为此:
Maybe.fromCallable(() -> null)
我正在学习如何使用 Maybe observable。我创建了以下示例。如果
Maybe.just(value) I will receive the value in onSuccess callback.
在 Maybe.just(null) 的情况下,我希望从 onError 接收日志。但是,根据发布的代码,当我 运行 代码时,应用程序崩溃并且我没有收到任何日志。 你能告诉我为什么我没有收到来自 onError() 的任何日志吗?
代码
Maybe.just(null)
.subscribe(
i->Log.i("TAG:", "[onSuccess]: " + i),
err->Log.e("TAG", "[ERROR] err.getMessage(): " + err.getMessage()),
() -> Log.i("TAG", "[COMPLETED]: ")
);
您无法创建 Maybe
做 Maybe.just(null)
。它会抛出 NullPointerException
,这就是您的应用程序崩溃的原因。
有些人建议图书馆应该有 Create a Maybe from null in RxJava 的选项,但不幸的是,这不会发生:
Closing as won't happen. Static methods returning RxJava types can live on any external class.
这样做的解决方法是将其替换为:
Maybe.just(null)
为此:
Maybe.fromCallable(() -> null)