RxJava2 - observable.subscribe onComplete 是 Action 类型
RxJava2 - observable.subscribe onComplete is Action type
在 RxJava2 中你不能做这样的事情
observable.subscribe(s -> {
System.out.println(s);
}, e -> {
System.err.println(e);
}, c -> {
System.err.println(c);
});
因为 c-> {} 不是 Action
类型(显然)
相反,你被迫做这样的事情
Action onComplete = new Action() {
@Override
public void run() throws Exception {
System.out.println("on complete");
}
};
observable.subscribe(s -> {
System.out.println(s);
}, e -> {
System.err.println(e);
},onComplete);
为什么 onComplete
不是 Consumer
类型?
原因是 onComplete 没有发出任何数据。消费者需要类型。如果某事完成了,它就完成了。
如果你有一个 Completable
它只调用 onComplete() 也没有发出数据。
onCompleted 真正意味着完成。 onNext/onSuccess 表示它有 Consumer<Type>
发出的数据,而 onError 表示它有 Consumer<Throwable>
。
在 RxJava2 中你不能做这样的事情
observable.subscribe(s -> {
System.out.println(s);
}, e -> {
System.err.println(e);
}, c -> {
System.err.println(c);
});
因为 c-> {} 不是 Action
类型(显然)
相反,你被迫做这样的事情
Action onComplete = new Action() {
@Override
public void run() throws Exception {
System.out.println("on complete");
}
};
observable.subscribe(s -> {
System.out.println(s);
}, e -> {
System.err.println(e);
},onComplete);
为什么 onComplete
不是 Consumer
类型?
原因是 onComplete 没有发出任何数据。消费者需要类型。如果某事完成了,它就完成了。
如果你有一个 Completable
它只调用 onComplete() 也没有发出数据。
onCompleted 真正意味着完成。 onNext/onSuccess 表示它有 Consumer<Type>
发出的数据,而 onError 表示它有 Consumer<Throwable>
。