У меня есть асинхронная функция, которая принимает completionHandler
в качестве параметров.У него типичный результат и параметры ошибок.completionHandler
вызывается после получения данных, загруженных из Интернета.
Существует несколько предварительных условий, при которых ошибка должна быть немедленно возвращена вызывающей стороне (например, при передаче неверного параметра запроса)..
Должны ли эти немедленные ошибки возвращаться синхронно:
public private(set) var completionQueue: DispatchQueue
public func callAsync(requestData: String, completionHandler: @escaping (result: String?, error: Error?) -> Void)
{
if <requestData is invalid>
{
completionHandler(result: nil, error: MyErrors.invalidRequestData)
}
...
}
Или, если completionHandler
всегда вызываться асинхронно, без исключений для ошибок, обнаруженных немедленно?
if <requestData is invalid>
{
completionQueue.async
{
completionHandler(result: nil, error: MyErrors.invalidRequestData)
}
}