     /// - Parameter page: 页数
     /// - Returns: 返回帖子列表获取结果
     private func fetchThreads(at page: Int) -> Observable<HiPDAThreadsResult> {
+        let fid = self.fid
+        let typeid = self.typeid
         return Observable.create { observer in
-            HiPDAProvider.request(.threads(fid: self.fid, typeid: self.typeid, page: page))
+            HiPDAProvider.request(.threads(fid: fid, typeid: typeid, page: page))
                 .observeOn(ConcurrentDispatchQueueScheduler(qos: DispatchQoS.background))
                 .mapGBKString()
                 .map {

}

/// 帖子列表管理
struct HiPDAThreadManager {
    /// 帖子列表
    fileprivate(set) var threads: [HiPDAThread]
    

    /// - Parameter page: 请求的帖子页码
    /// - Parameter state: 请求状态
    /// - Parameter completion: 返回帖子列表获取结果
    private func handleThreadsFetch(event: Event<HiPDAThreadsResult>, at page: Int, state: HiPDAThreadManagerState, completion: @escaping HiPDAThreadsFetchCompletion = { _ in }) {
        guard self.state == state else { return }
        self.state = .idle
        switch event {
