IOS,Swift如何知道RxAlamofire是否正在加载?

时间:2019-04-01 09:48:42

标签: ios swift rx-swift rxalamofire

我正在创建一个加载帖子列表的应用。

帖子列表中有页码。

每次滚动到达底部时,页码都会增加。

但是当您已经加载时,它不会增加。

我怎么知道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()
    }
}

或者您如何以比这更好的方式增加页面?

0 个答案:

没有答案