在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(),该()没有发出数据。
on Completed确实意味着完成。ONNEXT/ONSUCCESS意味着它具有Consumer<Type>
发出的数据,而OnError表示它具有Consumer<Throwable>
。