rxjava2 -observable.subscribe onComplete是动作类型



在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>

最新更新