如何使用 RxJava 每 1 秒重新检查一次?
How can I recheck every 1 second using RxJava?
RxJava
有没有什么方法可以复查变量是否为null,比如每1秒复查一次或者给变量赋值的时候复查?
String x;
Completable.create(emitter -> {
if (x != null)
emitter.onComplete();
}).timeout(10, TimeUnit.SECONDS).subscribe();
是的,开始一个间隔并在其他一些运算符中读取变量的值。请注意,为了安全起见,您需要一个 volatile
变量:
volatile String x;
Observable.interval(1, TimeUnit.SECONDS)
.takeUntil(t -> x != null)
.ignoreElements()
.subscribe(() -> System.out.println("Done!"));
Observable.timer(3500, TimeUnit.MILLISECONDS)
.subscribe(t -> { x = "value"; });
RxJava
有没有什么方法可以复查变量是否为null,比如每1秒复查一次或者给变量赋值的时候复查?
String x;
Completable.create(emitter -> {
if (x != null)
emitter.onComplete();
}).timeout(10, TimeUnit.SECONDS).subscribe();
是的,开始一个间隔并在其他一些运算符中读取变量的值。请注意,为了安全起见,您需要一个 volatile
变量:
volatile String x;
Observable.interval(1, TimeUnit.SECONDS)
.takeUntil(t -> x != null)
.ignoreElements()
.subscribe(() -> System.out.println("Done!"));
Observable.timer(3500, TimeUnit.MILLISECONDS)
.subscribe(t -> { x = "value"; });