我对RxSwift并不十分信服,而且很难理解。在审查了不同的材料之后,我仍然无法工作和操纵序列。 总的来说,我有类型转换的问题:
Cannot convert return expression of type 'Observable<Bool>' to return type 'Observable<Void>' (aka 'Observable<()>')
我有CocoaAction处理,应该返回Observable<Void>
func stopProject() -> CocoaAction {
return CocoaAction { _ in
let stopProject = stop(project: self.projectId)
return stopProject.asObservable() //wrong converting
}
}
stop
函数返回Observable<Bool>
完成视图:
return stop(project: self.projectId).flatMap { _ in
Observable<Void>.empty()
}
答案 0 :(得分:8)
let voidObservable = boolObservable.map { Void() }
答案 1 :(得分:0)
let voidObservable = boolObservable.map { _ in Void() }
并且如果您只想在布尔值为true的情况下发出值:
let voidObservable = boolObservable.filter { $0 }.map { _ in Void() }
答案 2 :(得分:0)
添加此扩展程序:
public extension ObservableType {
func mapToVoid() -> Observable<Void> {
return map { _ in }
}
}
所以你可以做
myObservable.mapToVoid()