在 Observable 中延迟 onComplete()
Delay onComplete() in Observable
我正在做这样的事情:
return Observable.zip(
Observable.interval(0, MOVE_LENGTH_IN_MILLIS, TimeUnit.MILLISECONDS),
Observable.fromIterable(mySuperNiceArrayList),
new BiFunction<Long, ItemTest, ItemTest>() {
@Override
public ItemTest apply(@NonNull Long aLong, @NonNull ItemTest itemTest) throws Exception {
return itemTest;
}
}
)
我遇到的问题是,在最后一项发出后,立即调用了 onComplete。有没有办法postpone/delay调用onComplete方法?
Hacky 解决方案是向 ArrayList 添加一个元素并在 onNext() 中忽略它。
将 整个 zip 与空的 Observable
延迟合并:
return Observable.zip(
Observable.interval(0, MOVE_LENGTH_IN_MILLIS, TimeUnit.MILLISECONDS),
Observable.fromIterable(mySuperNiceArrayList),
new BiFunction<Long, ItemTest, ItemTest>() {
@Override
public ItemTest apply(@NonNull Long aLong,
@NonNull ItemTest itemTest) throws Exception {
return itemTest;
}
}
).concatWith(Observable.<ItemTest>empty()
.delay(MOVE_LENGTH_IN_MILLIS, TimeUnit.MILLISECONDS));
编辑延迟应该发生在 zip 之后。
我正在做这样的事情:
return Observable.zip(
Observable.interval(0, MOVE_LENGTH_IN_MILLIS, TimeUnit.MILLISECONDS),
Observable.fromIterable(mySuperNiceArrayList),
new BiFunction<Long, ItemTest, ItemTest>() {
@Override
public ItemTest apply(@NonNull Long aLong, @NonNull ItemTest itemTest) throws Exception {
return itemTest;
}
}
)
我遇到的问题是,在最后一项发出后,立即调用了 onComplete。有没有办法postpone/delay调用onComplete方法?
Hacky 解决方案是向 ArrayList 添加一个元素并在 onNext() 中忽略它。
将 整个 zip 与空的 Observable
延迟合并:
return Observable.zip(
Observable.interval(0, MOVE_LENGTH_IN_MILLIS, TimeUnit.MILLISECONDS),
Observable.fromIterable(mySuperNiceArrayList),
new BiFunction<Long, ItemTest, ItemTest>() {
@Override
public ItemTest apply(@NonNull Long aLong,
@NonNull ItemTest itemTest) throws Exception {
return itemTest;
}
}
).concatWith(Observable.<ItemTest>empty()
.delay(MOVE_LENGTH_IN_MILLIS, TimeUnit.MILLISECONDS));
编辑延迟应该发生在 zip 之后。