Rx 中的平面图Swift Swift 5
Flatmap in RxSwift Swift 5
Swift 5 之前写的这个怎么行?
viewmodel
.postSeekerAvatar(data: data)
.flatMap {
self.viewmodel.updateSeeker(withFirstName: params.firstName, lastName: params.lastName, isBusiness: params.isBusiness, abn: "none", address: params.address)
}
.subscribe(onSuccess: { (_) in
SVProgressHUD.dismiss()
self.performSegue(withIdentifier: SegueConstants.toProfileForm, sender: self)
}) { (error) in
SVProgressHUD.showDismissableInfo(with: error.message)
}.disposed(by: disposeBag)
但是一旦我更新到 Swift 5,代码不会抛出错误但是当我使用 .flatMap {}
闭包时它抛出一个错误说明
这是因为编译器无法推断出您的 flatMap 返回值的类型。
在 flatMap 之后添加类型很容易修复:
.flatMap { _ -> Observable<Whatever> in
...
}
Swift 5 之前写的这个怎么行?
viewmodel
.postSeekerAvatar(data: data)
.flatMap {
self.viewmodel.updateSeeker(withFirstName: params.firstName, lastName: params.lastName, isBusiness: params.isBusiness, abn: "none", address: params.address)
}
.subscribe(onSuccess: { (_) in
SVProgressHUD.dismiss()
self.performSegue(withIdentifier: SegueConstants.toProfileForm, sender: self)
}) { (error) in
SVProgressHUD.showDismissableInfo(with: error.message)
}.disposed(by: disposeBag)
但是一旦我更新到 Swift 5,代码不会抛出错误但是当我使用 .flatMap {}
闭包时它抛出一个错误说明
这是因为编译器无法推断出您的 flatMap 返回值的类型。
在 flatMap 之后添加类型很容易修复:
.flatMap { _ -> Observable<Whatever> in
...
}