![](/img/trans.png)
[英]RxSwift: how to build up the observable function call chain other than use callback?
[英]Rxswift how to call 1 or more functions in return of the other function
我已經使用 RxSwift 在第一個函數的返回中調用其他函數。 為此,我嘗試了以下代碼:
func startSyncNow(_ call: CAPPluginCall,lastSyncTime: String) -> Observable<String> {
return createOrAlterTable(call)
.flatMapLatest(){ query -> Observable<String> in
let formschema = self.formSchemaToSQLite(call, lastSyncTime: lastSyncTime)
return formschema
}.flatMapLatest(){ query -> Observable<String> in
let menuTable = self.menuTableRecord(call, lastSyncTime: lastSyncTime)
return menuTable
}
.map { query -> String in
return "Success"
}
}
func createOrAlterTable(_ call: CAPPluginCall) -> Observable<[[String:Any]]>{
return Observable.just("Sucess")
}
func formSchemaToSQLite(_ call: CAPPluginCall,lastSyncTime : String) -> Observable<String> {
return Observable.just("Sucess")
}
func menuTableRecord(_ call: CAPPluginCall,lastSyncTime:String) -> Observable<String>{
return Observable.just("Sucess")
}
當我調試這段代碼時,我無法在 formSchemaToSQLite 或 recordsTOSqlite 上找到調試點。 請指導我我所缺少的
以下都編譯,當您調用example()
函數時,所有函數都被調用:
struct CAPPluginCall { }
func example() {
_ = startSyncNow(CAPPluginCall(), lastSyncTime: "before")
.subscribe(onNext: { result in
print(result)
})
}
func startSyncNow(_ call: CAPPluginCall, lastSyncTime: String) -> Observable<String> {
return createOrAlterTable(call)
.flatMapLatest { query -> Observable<String> in
let formschema = formSchemaToSQLite(call, lastSyncTime: lastSyncTime)
return formschema
}
.flatMapLatest { query -> Observable<String> in
let menuTable = menuTableRecord(call, lastSyncTime: lastSyncTime)
return menuTable
}
.map { query -> String in
return "Success"
}
}
func createOrAlterTable(_ call: CAPPluginCall) -> Observable<[[String:Any]]>{
return Observable.just([[:]])
}
func formSchemaToSQLite(_ call: CAPPluginCall,lastSyncTime : String) -> Observable<String> {
return Observable.just("Sucess")
}
func menuTableRecord(_ call: CAPPluginCall,lastSyncTime:String) -> Observable<String>{
return Observable.just("Sucess")
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.