Size: a a a

ReactiveX - русскоговорящее сообщество

2021 March 03

I

Ilya in ReactiveX - русскоговорящее сообщество
Всем привет, подаскажи по такой задаче. У меня есть функция fun foo(): Single<Any>.
И мне нужно ее вызвать несколько раз таким образом

Observable.fromArray(1,2,3)
.map { foo() }
.subscribeOn(schedulers.io())

Вопрос, как мне можно ее нормально сконвертировать в Observable<Any> куда придут все 3 элемента по-очереди, или в Observable<List<Any>> куда разом придут все значения?

Кроме варианта как в конце добавить .map { it.blockingGet() }?
источник

AM

Andrey Mikhaylov in ReactiveX - русскоговорящее сообщество
flatMap { foo.toObservable } как вариант
источник

I

Ilya in ReactiveX - русскоговорящее сообщество
то что нужно, спасибо
источник
2021 March 08

𒀊

𒀊Dmitry𒀖 in ReactiveX - русскоговорящее сообщество
источник
2021 March 14

Т

Тони in ReactiveX - русскоговорящее сообщество
Всем привет,
Есть 2 независимых друг от друга запроса, выполняются асинхронно.
Есть progress bar, скрыть его нужно когда два запроса отработали,  как это отловить? Может есть какие-то кейсы? Куда копать?)
источник

RC

Roman Chumachenko in ReactiveX - русскоговорящее сообщество
Тони
Всем привет,
Есть 2 независимых друг от друга запроса, выполняются асинхронно.
Есть progress bar, скрыть его нужно когда два запроса отработали,  как это отловить? Может есть какие-то кейсы? Куда копать?)
Сделай zip, это оба запроса стартует вместе и продолжит только после успешного выполнения обоих
источник

Т

Тони in ReactiveX - русскоговорящее сообщество
Roman Chumachenko
Сделай zip, это оба запроса стартует вместе и продолжит только после успешного выполнения обоих
Касаемо zip
Если я првильно понимаю, в случае если один из запросов возвращает ошибку, то резульат не приходит в subscribe и соответственно работать с ответом второго запроса я не могу)
источник
2021 March 15

RC

Roman Chumachenko in ReactiveX - русскоговорящее сообщество
Тони
Касаемо zip
Если я првильно понимаю, в случае если один из запросов возвращает ошибку, то резульат не приходит в subscribe и соответственно работать с ответом второго запроса я не могу)
Но ведь этого в дано не было)
Надо подумать
источник

RC

Roman Chumachenko in ReactiveX - русскоговорящее сообщество
Тони
Касаемо zip
Если я првильно понимаю, в случае если один из запросов возвращает ошибку, то резульат не приходит в subscribe и соответственно работать с ответом второго запроса я не могу)
А что тебе нужно сделать с каждым из результатов по отдельности?
источник

Т

Тони in ReactiveX - русскоговорящее сообщество
Roman Chumachenko
А что тебе нужно сделать с каждым из результатов по отдельности?
Ну, один запрос получает одни данные и запихивает их во вьюху
Второй запрос получает другие данные и запихивает их в другую вьюху
Два запроса независимы друг от друга) Соответственно и логика у каждого может быть своя
источник

RC

Roman Chumachenko in ReactiveX - русскоговорящее сообщество
Тони
Ну, один запрос получает одни данные и запихивает их во вьюху
Второй запрос получает другие данные и запихивает их в другую вьюху
Два запроса независимы друг от друга) Соответственно и логика у каждого может быть своя
Ты можешь у каждого из запросов сделать в onNext пост данных на вьюху, а потом, ниже по цепочке, зипнуть и на результат/ошибку спрятать прогресс бар
источник

Т

Тони in ReactiveX - русскоговорящее сообщество
Roman Chumachenko
Ты можешь у каждого из запросов сделать в onNext пост данных на вьюху, а потом, ниже по цепочке, зипнуть и на результат/ошибку спрятать прогресс бар
Тогда, дам ещё одно дополнение,сорян, что я об этом говорю позже :)
Используется Single в двух запросах
источник

RC

Roman Chumachenko in ReactiveX - русскоговорящее сообщество
Тони
Тогда, дам ещё одно дополнение,сорян, что я об этом говорю позже :)
Используется Single в двух запросах
Так нормально, zip есть, вместо onNext - onSuccess или что-то такое. Мне кажется, это не самое элегантное решение, но должно работать
источник

AM

Artem Mi in ReactiveX - русскоговорящее сообщество
А что если в случае с ошибкой через эмитор так же возвращать сукцесс?
источник

AM

Artem Mi in ReactiveX - русскоговорящее сообщество
В 2х синглах
источник

AM

Artem Mi in ReactiveX - русскоговорящее сообщество
Но только в зипе нужно будет прочекать, действительно ли сукцесс
источник

AM

Artem Mi in ReactiveX - русскоговорящее сообщество
Или что-то на подобии такого, но возвращать Single.just() в двух случаях
источник

AM

Artem Mi in ReactiveX - русскоговорящее сообщество
Хотя это тоже может сработать
источник

A

Aleksandr in ReactiveX - русскоговорящее сообщество
Roman Chumachenko
Сделай zip, это оба запроса стартует вместе и продолжит только после успешного выполнения обоих
А разве zip подходит? Мне казалось что тут нужен merge
источник

AM

Artem Mi in ReactiveX - русскоговорящее сообщество
источник