一尘不染

如何快速从异步块返回值

swift

请看下面的代码:

backgroundthread.async {
    return self.mycallback() //return string, int etc
}

我想从异步块返回一个值。我不需要任何完成处理程序或任何其他解决方法。

func getAppConfigFromDB(_ key: String) -> String 
{
   let value = String()
   backgroundthread.async {
      let inst = AppConfigDB.init(_APP_CONFIG_DB_PATH)
      value = inst.getConfigurationInfo(key) // I want to return from here.
   }
   return value
}


getAppConfigFromDB("path")

阅读 182

收藏
2020-07-07

共1个答案

一尘不染

就像@rmaddy所说的那样,除了使用完成处理程序,您别无选择。

func getAppConfigFromDB(_ key: String, completion: @escaping ((String) -> Any)) {
    let value = String()
    backgroundthread.async {
        let inst = AppConfigDB.init(_APP_CONFIG_DB_PATH)
        value = inst.getConfigurationInfo(key) // I want to return from here.
        completion(value)
    }
}

您可以这样调用方法。

getAppConfigFromDB("") { (value) -> Any in
    // Use value to do something
}
2020-07-07