У меня есть обработчик завершения, который мне нужно назначить для свойства, но я хочу, чтобы он выполнял асинхронно.Синтаксис для переноса обработчика завершения в диспетчере async
Если у меня не было это требование, я хотел бы написать:
request.completionBlock = completionBlock
Но так как у меня есть это требование, я должен написать этот
request.completionBlock = { response, error in
DispatchQueue.main.async {
completionBlock(response, error)
}
}
, который кажется излишним и не-Swifty ,
Нет ли более простого синтаксиса? Я хотел бы написать что-то вроде
request.completionBlock = completionBlock.map(DispatchQueue.main.async)
Могу ли я выразить свою потребность таким простым способом?
Является ли 'request' экземпляр типа, который вы можете изменить, или же она должна быть продолжением/подкласс этого? – DavidA