RxJava 2“Hello World”没有打印任何东西

时间:2018-04-12 17:34:33

标签: java reactive-programming rx-java2

我对RxJava(以及一般的反应式编程)完全不熟悉。因此,我决定编写一个简单的程序来掌握一些基本概念。这是一个非常基本的程序,应该打印一个String值。不幸的是,它根本没有打印任何内容,甚至可以捕获一些错误。我试图调试它,但似乎整个事情都无法启动。

这可能是错的?任何帮助,将不胜感激。这就是代码:

public class Main {
public static void main(String[] args) {

    checkForNewString();
}

public static Completable checkForNewString() {
    return Completable.create(emitter -> {
        captureString()
        .doOnSuccess(s -> System.out.println(s))
        .doOnError(throwable -> emitter.onError(new RuntimeException("Error")))
        .subscribe();
    })
    .subscribeOn(Schedulers.newThread());
}

public static Single<String> captureString() {
   return Single.create(emitter -> {
       String test = generateString();
       emitter.onSuccess(test);
   });
}

public static String generateString() {
    return "Test";
}

}

1 个答案:

答案 0 :(得分:0)

原来我不需要那个Observable。这是代码:

public class Main {
public static void main(String[] args) {
    checkForNewString();
}


public static void checkForNewString() {
    captureString()
       .doOnSuccess(s -> System.out.println(s))
       .subscribe();
}

public static Single<String> captureString() {
   return Single.create(emitter -> {
       String test = generateString();
       emitter.onSuccess(test);
   });
}

public static String generateString() {
    return "Test";
}

}