我正在创建一个加载帖子列表的应用。
帖子列表中有页码。
每次滚动到达底部时,页码都会增加。
但是当您已经加载时,它不会增加。
我怎么知道RxAlamofire是否正在加载?
struct PostNetworkModel {
private var pageNo:Observable<Int>
var postList : BehaviorRelay<[Post]> = BehaviorRelay(value: [])
let disposeBag = DisposeBag()
init(pageNo:Observable<Int>) {
self.pageNo = pageNo
loadPostList()
.bind(to: postList)
}
private func loadPostList() -> Observable<[Post]> {
return pageNo
.flatMapLatest { pageNum -> Observable<(HTTPURLResponse, Any)> in
let (url,param) = PostList(pageNo: pageNum)
return RxAlamofire
.requestJSON(.post, url, parameters: param)
.debug()
.catchError { error in
return Observable.never()
}
}
.map{ ( response , json) -> [Post] in
guard json is [String:AnyObject] else { return [] }
if let repos = Mapper<Post>().mapArray(JSONObject: (json as! [String:AnyObject])["Posts"]) {
return self.postList.value + repos
}else{
return self.postList.value
}
}
.asObservable()
}
}
或者您如何以比这更好的方式增加页面?