我正在尝试在MVVM中实现一个ViewModel,提供可观察的东西作为“输入流”,提供观察者作为“输出流”供视图绑定。
public class ViewModel {
private final BehaviorSubject<String> query;
private final BehaviorSubject<User> result;
public ViewModel() {
result = BehaviorSubject.create();
query = BehaviorSubject.create();
query.flatMap(s -> getUser(s)).subscribe(result);
// result = result.doOnError(e -> onError(e)); // does not work
}
Observable<String> login() {
return result.map(user -> user.getLogin());
}
Observable<String> blog() {
return result.map(user -> user.getBlog());
}
public Observer<String> queryObserver() {
return query;
}
private void onError(Throwable e) {
Log.e(TAG, e.getMessage());
}
}
doonerror()
是一个“辅助操作”运算符,它不捕获错误。应该类似于:
query.flatmap(s->getUser(s)).subscribe(result::OnNext,This::OnError);
我正在使用较新的RX java,而不是 如果一切正常的话,这段代码几乎可以完美地工作。但如果我故意犯了个错误,比如我关掉了WiFi。而不是改型获得“UnknownHostException”...因为它应该发生在try catch块中的reverfit调用(getUser)中。但它没有将错误处理到onError(Throwable t)-->(我可以处理的地方),而是使应用程序崩溃。这就像错误从未
我有这个问题关于空数据库返回与房间和RxJava单一。我知道我的数据库是空的,所以我希望在触发时得到一个空的返回 问题是当我调用这个函数如下所示时 但仍然返回异常和崩溃 w/system.err:io.reactivex.exceptions.onerrornotimplementedexception:查询返回空结果集:SELECT*FROM Times WHERE timestamp=? 我在
主要内容:RxJava Subjects主题 介绍,RxJava Subjects主题 类型RxJava Subjects主题 介绍 根据Reactive,一个 Subject 可以同时充当 Observable 和 Observer。 Subject 是一种桥接器或代理,在 ReactiveX 的某些实现中可用,它既充当观察者又充当 Observable。因为它是一个观察者,它可以订阅一个或多个 Observable,并且因为它是一个 Observable,它可以通过重新发送它们来传递
嗨,我是RxJava和Kotlin的新手,我对它有一些概念。 我知道错误是很明显的。所以我知道缺少了什么,但我不知道的是如何处理这个错误。 我尝试添加:,但仍显示相同的错误消息。
一般来说,Observable不会抛异常。它会调用 onError 终止Observable序列,以此通知所有的观察者发生了一个不可恢复的错误。 但是,也存在一些异常。例如,如果 onError 调用失败了,Observable不会尝试再次调用 onError 去通知观察者,它会抛出 RuntimeException,OnErrorFailedException 或者 OnErrorNotImpl
问题内容: 我正在学习RxJava,并且在很多地方看到可以通过这种方式处理错误: 我是唯一认为这确实是错误代码的人吗?我该如何做得更好?我虽然使用了“访问”我的基本异常的每种具体类型的模式,但是方法始终需要一个;。您不能使用自己的基本异常。 问题答案: 错误处理程序: 您可以这样使用: