APIKitのsynchronous send method
import Foundation
import APIKit
import Result
extension Session: ExtensionCompatible {}
extension Extension where Base: Session {
func sendSync<T: Request>(_ request: T) -> Result<T.Response, SessionTaskError> {
var result: Result<T.Response, SessionTaskError>!
let semaphor = DispatchSemaphore(value: 0)
self.base.send(request, callbackQueue: .sessionQueue) { _result in
result = _result
semaphor.signal()
}
semaphor.wait()
return result
}
}