RxSwift — получение неопределенных ресурсов через HTTP

У меня есть неопределенные ресурсы, которые необходимо получить с сервера. Я попытался сделать это, используя операторы repeatElement() и concat() следующим образом:

repeatElement(0, CurrentThreadScheduler.instance).map({ _ -> Observable<[Task]> in
    // API.getTasks() uses Alamofire to request data
    return API.getTasks(loggedUser, after: loggedUser.taskPullTime)
}).concat().takeWhile({ (tasks) -> Bool in
    return tasks.count > 0
})

К сожалению, repeatElement просто выдаст элемент, не дожидаясь обработки старого. Я думаю, причина в том, что Alamorfire выполняется в частной последовательной очереди. Однако я не могу понять, как решить эту проблему.

Я использовал стратегию, вдохновленную здесь в своем проекте Android. Все работает нормально, потому что Retrofit инициирует HTTP-запрос синхронно.


person YON    schedule 04.12.2015    source источник
comment
Вы решили это? Я столкнулся с той же проблемой.   -  person wint    schedule 17.12.2016
comment
@wint checkout это   -  person YON    schedule 17.12.2016
comment
Спасибо, я уже сделал это, но я думаю, что должен быть более простой способ. В RxJava это очень просто. :)   -  person wint    schedule 17.12.2016
comment
Мой обходной путь заключается в том, чтобы запрос этой последовательности стал синхронным, используя USLSession.   -  person wint    schedule 17.12.2016