是否有一个 Observable 可以发出多个 0 参数?
Is there an Observable which can make multiple 0 argument emissions?
我有一个 Observable 每半秒发射一次。当这个 Observable 发射时,我不关心发射的对象。
在这种情况下,使用 Completable 是不够的,因为 Completable 只能发出一个零参数。
这是我目前使用的,效果很好,但不完善
compositeDisposable.add(
Observable.interval(500L, TimeUnit.MILLISECONDS)
.timeInterval()
.observeOn(AndroidSchedulers.mainThread())
.flatMap(longTimed -> {
if (emissionBoolean) {
//todo: find an observable that can emit 0 arguments
return Observable.just(true);
}
return Observer::onComplete;
})
.subscribe(wishIWasAZeroArgumentBoolean -> {
onTick();
}));
这就是我想要的订阅内容
.subscribe(() -> {
onTick();
}));
我认为这是一个有效的问题。 Maybe
无法使用,因为 Maybe
不会多次发出。 _
不能在 Java 9 或更高版本中用作参数名称。
您无法发送 "empty" 通知。 RxJava wiki 建议使用 Object
以防您想显式忽略发出的值。例如:
compositeDisposable.add(
Observable.interval(500L, TimeUnit.MILLISECONDS)
.timeInterval()
.observeOn(AndroidSchedulers.mainThread())
.flatMap(longTimed -> {
if (emissionBoolean) {
//todo: find an observable that can emit 0 arguments
return Observable.just(new Object());
}
return Observable.empty()
})
.subscribe(object -> { // you still need to declare though.
onTick();
}));
另外,如果可以切换到Kotlin,代码会更简洁,因为在Kotlin中,如果只有一个参数,则不需要显式声明参数名称。
compositeDisposable.add(
Observable.interval(500L, TimeUnit.MILLISECONDS)
.timeInterval()
.observeOn(AndroidSchedulers.mainThread())
.flatMap {
if (emissionBoolean) {
Observable.just(Any())
} else {
Observable.empty<Any>()
}}
.subscribe {
onTick()
}
我有一个 Observable 每半秒发射一次。当这个 Observable 发射时,我不关心发射的对象。
在这种情况下,使用 Completable 是不够的,因为 Completable 只能发出一个零参数。
这是我目前使用的,效果很好,但不完善
compositeDisposable.add(
Observable.interval(500L, TimeUnit.MILLISECONDS)
.timeInterval()
.observeOn(AndroidSchedulers.mainThread())
.flatMap(longTimed -> {
if (emissionBoolean) {
//todo: find an observable that can emit 0 arguments
return Observable.just(true);
}
return Observer::onComplete;
})
.subscribe(wishIWasAZeroArgumentBoolean -> {
onTick();
}));
这就是我想要的订阅内容
.subscribe(() -> {
onTick();
}));
我认为这是一个有效的问题。 Maybe
无法使用,因为 Maybe
不会多次发出。 _
不能在 Java 9 或更高版本中用作参数名称。
您无法发送 "empty" 通知。 RxJava wiki 建议使用 Object
以防您想显式忽略发出的值。例如:
compositeDisposable.add(
Observable.interval(500L, TimeUnit.MILLISECONDS)
.timeInterval()
.observeOn(AndroidSchedulers.mainThread())
.flatMap(longTimed -> {
if (emissionBoolean) {
//todo: find an observable that can emit 0 arguments
return Observable.just(new Object());
}
return Observable.empty()
})
.subscribe(object -> { // you still need to declare though.
onTick();
}));
另外,如果可以切换到Kotlin,代码会更简洁,因为在Kotlin中,如果只有一个参数,则不需要显式声明参数名称。
compositeDisposable.add(
Observable.interval(500L, TimeUnit.MILLISECONDS)
.timeInterval()
.observeOn(AndroidSchedulers.mainThread())
.flatMap {
if (emissionBoolean) {
Observable.just(Any())
} else {
Observable.empty<Any>()
}}
.subscribe {
onTick()
}