在Observable

时间:2017-03-28 12:08:17

标签: android rx-android rx-java2

我正在做这样的事情:

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()中忽略它。

1 个答案:

答案 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之后发生。