【问题标题】:RxSwift BehaviorRelay auto isDisposedRxSwift BehaviorRelay auto isDisposed
【发布时间】:2019-11-27 02:57:05
【问题描述】:

这是我的代码:

class MapManager: NSObject {

    let removeFenceTask = BehaviorRelay<String?>(value: nil)

    override init() {
        super.init()

        removeFenceTask
            .filter({ $0 != nil })
            .debug("removeFenceTask", trimOutput: true)
            .flatMap { (taskId: String?) -> Observable<TaskModel> in
                guard let `taskId` = taskId, let provider = Application.shared.provider else { return Observable.just(TaskModel()) }
                return provider.queryTaskDetail(taskId: taskId).asObservable()
        }
        .asObservable()
        .subscribe(onNext: { [weak self] (taskModel) in
            self?.removeFence(taskModel: taskModel)
        }).disposed(by: rx.disposeBag)

    }
}
    func queryTasks(_ currentPage: Int, status: TaskStatus) -> Single<([TaskModel], Bool)> {
        return requestObject(
            .queryTasks(currentPage: currentPage, pageSize: 10, status: status), type: TaskModelWrapper.self)
            .map({ (taskModelWrapper) -> ([TaskModel], Bool) in
                let tasks = taskModelWrapper.data?.data ?? []
                tasks.filter({ $0.taskStatus == .canceled || $0.taskStatus == .deliveryCompleted || $0.taskStatus == .taskCompleted || $0.taskStatus == .terminated })
                    .forEach { (taskModel) in
                        MapManager.shared.removeFenceTask.accept(taskModel.taskId)
                }
                return (tasks, taskModelWrapper.data?.isNoMoreDataShow ?? false)
            })
    }

在成功完成 2 次活动后,我终于得到了 isDisposed

控制台:

2019-11-27 10:46:27.203: newFenceTask -> 订阅

2019-11-27 10:46:27.203: removeFenceTask -> 订阅

2019-11-27 10:46:27.204: removeFenceTask -> 事件 next(Optional("123"))

2019-11-27 10:46:27.207: removeFenceTask -> 事件 next(Optional("1908157SRZTT2DGF"))

2019-11-27 10:46:27.295: removeFenceTask -> isDisposed

问题:为什么会发生这种isDisposed

【问题讨论】:

    标签: swift rx-swift


    【解决方案1】:

    你的rx.disposeBag 没有被处理掉吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多