首页 > 解决方案 > 调用 GraphQL appSync 请求并等待结果返回 Swift iOS

问题描述

我希望我的应用程序等到请求结果返回。所以在下面的块中,我想要做的是如果请求的查询返回空结果,我想调用“self.insertCreditRecord”。有人做过吗?appSyncClient?.fetch(query: selectQuery, cachePolicy: .fetchIgnoringCacheData) {(result, error) in if error != nil { print(error?.localizedDescription ?? "") return }

            result?.data?.listTranscriberConfigs?.items!.forEach {

                if let credit = Double($0?.value ?? "0.0")
                {
                    UserCredit.id = ""
                    UserCredit.id = $0?.id ?? ""
                    UserCredit.email = $0?.param ?? ""
                    UserCredit.credit =  credit
                }

                if UserCredit.id == "" {
                    self.insertCreditRecord(email: email)
                }
                print(($0?.param)! + " " + ($0?.value)!)
 
            }
        
        
        
    }

标签: iosswiftaws-appsync

解决方案


你只需要在你的函数中使用完成处理程序来忽略空返回

例如

typealias CompletionHandler = (success:Bool) -> Void

func downloadFileFromURL(url: NSURL,completionHandler: CompletionHandler) {

    // download code.

    let flag = true // true if download succeed,false otherwise

    completionHandler(success: flag)
}

// How to use it.

downloadFileFromURL(NSURL(string: "url_str")!, { (success) -> Void in

    // When download completes,control flow goes here.
    if success {
        // download success
    } else {
        // download fail
    }
})

推荐阅读