我正在做这样的事情:
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。有没有办法推迟/延迟onComplete方法的调用?
Hacky解决方案是向ArrayList添加一个元素,并在onNext()中忽略它。
答案 0 :(得分:4)
将整个邮政编码与空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之后发生。