IOS, Swift Как узнать, загружается ли сейчас RxAlamofire? - PullRequest
0 голосов
/ 01 апреля 2019

Я создаю приложение, которое загружает список сообщений.

В списке сообщений есть номер страницы.

Каждый раз, когда прокрутка достигает дна, номер страницы увеличивается.

Но оно не увеличивается, когда вы уже загружаете.

Как узнать, загружается ли 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()
    }
}

Или как увеличить вашу страницу влучше чем это?

...