我有需要从服务器获取的未确定资源。我尝试使用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项目中使用了来自here的策略。一切正常,因为以同步方式修改init HTTP请求。