2016-09-27 4 views
1

Вот мой вопрос: у меня есть несколько синглов и вы хотите их застегнуть. Но я хочу, чтобы функция zip вызывалась после завершения Completable. Также я хочу подписаться на все синглы и Завершить одновременно. (Так что нет completable.andThen(Single.zip(...))Single.zip with Completed

Здесь не является примером того, что я делаю сейчас:

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 
… 
}) 

Есть ли лучший способ?

ответ

3

Вы можете использовать toSingleDefault при преобразовании из Completable в Single:

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 
… 
}) 
Смежные вопросы