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)
}
}
感谢阅读本文,希望您能理解我的问题。基本上我想做的是:
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)
}
}