RxSwift 将 Observable<Bool> 转换为 Observable<Void>

RxSwift convert Observable<Bool> to Observable<Void>

我对 RxSwift 还不是很信服,真的很难理解。在查看了不同的材料后,我仍然无法工作和操作序列。 总的来说,我在类型转换方面遇到了问题:

Cannot convert return expression of type 'Observable<Bool>' to return type 'Observable<Void>' (aka 'Observable<()>')    

我有CocoaAction处理,应该returnObservable<Void>

func stopProject() -> CocoaAction {
    return CocoaAction { _ in
        let stopProject = stop(project: self.projectId)
        return stopProject.asObservable() //wrong converting
    }
}

stop函数returnObservable<Bool>

完成视图:

    return stop(project: self.projectId).flatMap { _ in
        Observable<Void>.empty()
    }
let voidObservable = boolObservable.map { Void() }

let voidObservable = boolObservable.map { _ in Void() }

如果您只想在布尔值为真时发出一个值:

let voidObservable = boolObservable.filter { [=11=] }.map { _ in Void() }

添加此扩展程序:

public extension ObservableType {
    func mapToVoid() -> Observable<Void> {
        return map { _ in }
    }
}

所以你可以做

myObservable.mapToVoid()