有可以过滤的运营商nil
吗?我最接近的是这里提到的解决方案:https ://github.com/ReactiveX/RxSwift/issues/209#issuecomment-150842686
相关摘录:
public protocol OptionalType {
func hasValue() -> Bool
}
extension Optional: OptionalType {
public func hasValue() -> Bool {
return (self != nil)
}
}
public extension ObservableType where E: OptionalType {
@warn_unused_result(message="http://git.io/rxs.uo")
public func notNil() -> Observable<E> {
return self.filter { $0.hasValue() }
}
}
但是, after .notNil()
,E
仍然是可选的,因此后续的链式运算符仍然认为self
whereObserver<E>
是E
可选的。所以我仍然需要一个额外的运算符:
.map { (username: String?) -> String in
return username!
}
我肯定错过了什么。这似乎是一个非常普遍的需求。