我的问题是:我有一些单品,想把它们压缩。但是我只希望zip函数在Completable完成后被调用。我也想订阅所有的单身和完成在同一时间。(所以没有completable.andThen(Single.zip(...)
)
下面是我现在正在做的一个例子:
Single<T1> s1 = …;
Single<T2> s2 = …;
Single<T3> s3 = …;
Completable c = …;
Single.zip(s1, s2, s3, c.andThen(Single.just("")), (a, b, c, ignore) -> {
// All singles have emitted an item and c is completed
…
})
有更好的方法吗?
从Completable
转换为Single
时可以使用toSingleDefault
:
Single<T1> s1 = …;
Single<T2> s2 = …;
Single<T3> s3 = …;
Completable c = …;
Single.zip(s1, s2, s3, c.toSingleDefault(""), (a, b, c, ignore) -> {
// All singles have emitted an item and c is completed
…
})