Search code examples
swiftrx-swift

How to pass RxSwift zip with calling function response of other 2 function


I having issues in RxSwift Zip uses ,As i am trying to achieve response of other 2 function and send reqest to 3rd function .i have debuged in xcode and break point not itself came on 3rd function using zip . i have triyed like this

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"

Solution

  • Based on the question asked, here's what you are looking for:

    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)
    }