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()
我对 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()