如何通过调用其他2个函数的函数响应传递RxSwift zip
我在RxSwift Zip使用中遇到问题,因为我正在尝试实现其他2个函数的响应,并将reqest发送到第3个函数。我已经在xcode中进行了调试,断点本身并没有出现在使用Zip的第3个函数上。我曾经这样玩过如何通过调用其他2个函数的函数响应传递RxSwift zip,swift,rx-swift,Swift,Rx Swift,我在RxSwift Zip使用中遇到问题,因为我正在尝试实现其他2个函数的响应,并将reqest发送到第3个函数。我已经在xcode中进行了调试,断点本身并没有出现在使用Zip的第3个函数上。我曾经这样玩过 func createOrAlterTable(_ call: CAPPluginCall) -> Observable<[[String:Any]]>{ return Observable.zip(
func createOrAlterTable(_ call: CAPPluginCall) -> Observable<[[String:Any]]>{
return Observable.zip(
readTableFromBackend(call), getUserData(call),resultSelector: { value1, value2 in
print("\(value1) \(value2)")
self.readTableFromBackendZipperFun(sqlliteDDLStr: value1, lastFV: value2! as [[String: Any]], call)
}).subscribeOn(MainScheduler.instance)
.subscribe()
.disposed(by: disposeBag)
func readTableFromBackend() -> String {
return "response Table Data"
}
func getUserData() -> String {
return "response user Data"
}
func readTableFromBackendZipperFun(sqlliteDDLStr: value1, lastFV: value2! as [[String: Any]], call)) -> [[String:Any]]
return "JSon response"
func createOrAlterTable(uCall:CAPPluginCall)->可观察{
return-Observable.zip(
readTableFromBackend(调用)、getUserData(调用)、resultSelector:{value1,value2 in
打印(“\(值1)\(值2)”)
self.readTableFromBackendZipperFun(sqllitedlstr:value1,lastFV:value2!as[[String:Any]],call)
}).subscribeOn(MainScheduler.instance)
.subscribe()
.处置(由:处置人)
func readTableFromBackend()->字符串{
返回“响应表数据”
}
func getUserData()->字符串{
返回“响应用户数据”
}
func readTableFromBackendZipperFun(sqllitedlstr:value1,lastFV:value2!as[[String:Any]],call))->[[String:Any]]
返回“JSon响应”
根据您提出的问题,以下是您要查找的内容:
func example<T, U, V>(first: () -> Observable<T>, second: () -> Observable<U>, third: @escaping (T, U) -> Observable<V>) -> Observable<V> {
return Observable.zip(first(), second())
.flatMap(third)
}
func示例(第一个:()->可观察,第二个:()->可观察,第三个:@escaping(T,U)->可观察)->可观察{
返回Observable.zip(第一个(),第二个())
.flatMap(第三)
}
根据您提出的问题,以下是您要查找的内容:
func example<T, U, V>(first: () -> Observable<T>, second: () -> Observable<U>, third: @escaping (T, U) -> Observable<V>) -> Observable<V> {
return Observable.zip(first(), second())
.flatMap(third)
}
func示例(第一个:()->可观察,第二个:()->可观察,第三个:@escaping(T,U)->可观察)->可观察{
返回Observable.zip(第一个(),第二个())
.flatMap(第三)
}
您的代码没有多大意义。zip中使用的函数必须返回可观察值,而不是字符串。您的代码没有多大意义。zip中使用的函数必须返回可观察值,而不是字符串。