【发布时间】:2021-01-06 01:16:30
【问题描述】:
我正在尝试使用 Alamofire's completion handler 和 DispatchSemaphores 在 Swift 上发出 async 请求。我需要得到响应,然后将其返回给另一个方法,所以基本上这是我的代码
func customRequest(zipCode: String) -> Bool{
var response = false
let dispatchQueueProcess = DispatchQueue.global(qos: .userInitiated)
let semaphore = DispatchSemaphore(value: 1)
dispatchQueueProcess.async {
semaphore.wait()
apiRequest(zipCode: zipCode) { apiResponse in
if apiResponse != nil {
response = apiResponse
} else {
print("Server did not Response")
}
semaphore.signal()
}
}
return response
}
问题是请求总是返回false,因为没有等到apiRequest 响应......你有什么想法来解决这个问题吗?非常感谢!
附言。 apiRequest 返回“真”/“假”
【问题讨论】:
标签: swift signals dispatchsemaphore