Rx Java выполнить Completable после Single асинхронно - PullRequest
0 голосов
/ 17 апреля 2020

Есть ли способ позволить Single испускать данные и когда он (или, возможно, когда он завершает) запускает Completable с этими данными в асинхронном режиме?

Мой вопрос очень похож на this , но я пытаюсь вызвать Completable асинхронно.

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

Single.just("abc")
     .map(string -> {
         myHeavyCompletable(string); //this should be async
         return string;
     });

[...]

private Completable myHeavyCompletable(String string) {
    //heavy logic that could slow down the execution
}

Я видел, что подписка на Completable внутри map позволила мне как-то выполнить sh, но тогда я не знал бы, как правильно распорядиться этим (поскольку этот метод не вызывается внутри действия).

Любая помощь будет очень признательна, спасибо!

1 Ответ

3 голосов
/ 17 апреля 2020

Рассмотрите возможность использования flatMapCompletable и subscribe в асинхронном режиме в правильном потоке. Этот подход объединяет все логи c в виде конвейерной последовательности. Если это не то, что вам нужно, вы можете подписать свои Completables на карте и вернуть одноразовые как результат, собрать их в конце и утилизировать по мере необходимости.

...