VP
Тут корректнее написать Single вместо Observable
Size: a a a
VP
Y
VP
VP
V
fun foo(): Completable {
return flowable.flatMapCompletable {
Completable.complete()
}
}fun foo(): Completable {
return flowable.flatMapSingle {
Completable.complete().andThen(Single.just(Unit))
}
}V
andThen(Single.just(Unit)) ?V
flatMapCompletable вернуть результат, чтобы цепочка шла дальшеl
fun foo(): Completable {
return flowable.flatMapCompletable {
Completable.complete()
}
}fun foo(): Completable {
return flowable.flatMapSingle {
Completable.complete().andThen(Single.just(Unit))
}
}l
RA
M
RA
F
.flatMap {
if (condition) {
Completable.fromAction{ ... }.andThen(Observable.empty<SomeObj>().toSingle())
} else {
pushesRepository.getPushesFromServer(SomeObj()).doOnSuccess {...}
}
}.flatMap {
userRepository.sync()
.doOnSuccess {...}
}
После этого кода еще длинная цепочка выполняется. Задача: нужно чтобы если condition == true цепочка дальше не выполнялась. У меня получился только такой костыль, но я помню что кидаение ошибок (а тут де-факто оно и есть) - неправильный способ завершать последовательность, если таковым образом предусмотрено ее завершение. Сделать все Completabl-ами я не могу, т.к. есть doOnSuccess у !condition и цепочка предусмотрена в flatMap -ах SingleA
.flatMap {
if (condition) {
Completable.fromAction{ ... }.andThen(Observable.empty<SomeObj>().toSingle())
} else {
pushesRepository.getPushesFromServer(SomeObj()).doOnSuccess {...}
}
}.flatMap {
userRepository.sync()
.doOnSuccess {...}
}
После этого кода еще длинная цепочка выполняется. Задача: нужно чтобы если condition == true цепочка дальше не выполнялась. У меня получился только такой костыль, но я помню что кидаение ошибок (а тут де-факто оно и есть) - неправильный способ завершать последовательность, если таковым образом предусмотрено ее завершение. Сделать все Completabl-ами я не могу, т.к. есть doOnSuccess у !condition и цепочка предусмотрена в flatMap -ах SingleF
F
A
A
F
F