RxJava2 + Retrofit2: Почему в интерфейсе Retrofit часто используют именно Observable/Flowable?

Читал разные статьи и смотрел много видео на ютубе по связке RxJava и Retrofit, и очень часто видел примерно одну и ту же конструкцию:

@GET("some/endpoint")
fun getSomeData(): Observable<SomeData>

И я никак не могу понять, почему именно Observable? То есть как я понимаю, чтобы выполнился запрос мы вызываем метод subscribe(...), данные придут в onNext(), затем произойдет вызов onCompleted(). И получается onNext() вызовется всего 1 раз. Чтобы сделать повторный запрос, нам снова приходится вызывать subscribe(...), и сценарий повторяется. Я знаю, что при использовании Observable'а вызов onNext() может происходить 0, 1, 2, ..., n раз. Но в данном случае получается, что мы имеем 2 подписчика и у каждого onNext() выполнился по 1 разу. А это по сути поведение Single. Так почему же используют Observable или Flowable, а не Single?


Ответы (0 шт):