2
Я пытаюсь получить данные JSON от REST (swift 2.3) с помощью rxSwift и Alamofire. Это мой код:RxSwift: onDisposed активирован до возвращения данных Alamofire
func getArticles(articlesReq: ArticlesReq) - > Observable <[Article]> {
return Observable <[Article]> .create {
observer in
let request = Alamofire.request(.POST, apiPath, parameters: DataHelper().convertStringToDictionary(JSONString), encoding: .JSON)
.responseArray {
(response: Response < [Article], NSError >) in
if let articlesArray = response.result.value {
observer.on(.Next(articlesArray))
}
observer.on(.Completed)
}
return AnonymousDisposable {
request.cancel()
}
}
}
getArticles(articlesReq).observeOn(MainScheduler.instance)
.subscribe(
onNext: {
data in
print(data)
},
onError: {
error in
print(error)
},
onCompleted: {
print("Completed")
},
onDisposed: {
print("Disposed")
}
).addDisposableTo(db)
onDisposed возвращают данные перед Alamofire.request возвращаемые данные (onNext, OnError, OnCompleted не возвращать данные). Как подождать ответа?
спасибо. Оно работает. –