如何通过调用其他2个函数的函数响应传递RxSwift zip

如何通过调用其他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(

我在RxSwift Zip使用中遇到问题,因为我正在尝试实现其他2个函数的响应,并将reqest发送到第3个函数。我已经在xcode中进行了调试,断点本身并没有出现在使用Zip的第3个函数上。我曾经这样玩过

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中使用的函数必须返回可观察值,而不是字符串。