Swift - 从第二个函数调用完成处理程序

Swift - Call completion handler from a second function

感谢阅读本文,希望您能理解我的问题。基本上我想做的是:

private func doGet(path:String, body:Dictionary, completion: @escaping (JSON?, Bool) -> Void) {
    completion(data, bool)
}

func getData(body){
    return doGet("/api/data", body: body)
}

// The function gets called in another class
getData(data){ (data, bool) 
    // do something with data
}

我知道这段代码不起作用,但这就是我想做的。我不想从另一个 class 调用 doGet 我想在两者之间有一个函数。也许这是不可能的。如果我没有说清楚,请告诉我,并提前致谢。 :)

getData 还需要一个完成处理程序参数,因为它也是 returns 异步结果。

所以,你会有这样的东西:

getData(body: SomeType, completion: @escaping (Data, Bool) -> Void) {
   doGet(path: "/api/data", body: body) { (param1, param2) in
       // turns param1 and param2 into parameters to invoke 
       // the completion handler with
       completion(data, true)
   }
}