Я хочу сделать простой запрос долго опроса с RxSwift, который может быть похож на RxJava код ниже:Long опрос с RxSwift
api.loadHotels(searchRequest)
.repeatWhen(obs -> observable.delay(3, TimeUnit.SECONDS))
.takeUntil(searchResponse -> searchResponse.isCompleted)
.subscribe(listener::hotelListLoaded);
В RxSwift, есть repeatWhen оператор, который принимает ObservableConvertibleType в качестве параметра , не передавая цепочку Observable ее закрытию в качестве аргумента, в отличие от своего синонима в RxJava.
Что я ожидал от RxSwift: api.loadHotels(searchRequest).repeatWhen{result -> ObservableConvertibleType}
, поэтому я могу написать ту же логику, что и код RxJava. Но я не могу этого добиться. Потому что это только как api.loadHotels(searchRequest).repeatWhen(ObservableConvertibleType)
То же самое относится и к оператору RxSwift takeUntil
.
Однако я также пытался: repeatWhen operator in RxSwift и repeatWhen substituter in RxSwift
Так что мой вопрос: как я могу достичь того же логики в RxSwift как данный код RxJava? Я получаю рабочий поток текущих repeatWhen
и takeUntil
операторов RxSwift неправильно?
Это хорошее решение. Спасибо! –