Return Bool в кастомной очереди Dispatch_async

swift5
ios

#1

У меня функция проверяет наличие сущностей определенного типа в бд. Она должна возвращать Bool.

    func checkEntityListExists<EntityType>(type: EntityType) -> Bool {
    let entityName = String(describing: type)
    concurrentQueue.async {
        let fetchRequest = NSFetchRequest<NSFetchRequestResult>()
        let entityDescription = NSEntityDescription.entity(forEntityName: entityName, in: self.context)
        fetchRequest.entity = entityDescription
        let result = try self.context.fetch(fetchRequest)
        return result.isEmpty
    }
}

Возникает ошибка:

Invalid conversion from throwing function of type '() throws -> Void' to non-throwing function type '@convention(block) () -> Void'

Я не хочу использовать callback, потому что в зависимости от true/false придется вызывать функцию, которая тоже имеет completion closure.

Есть способ вернуть значение из dispatch_async?

private let concurrentQueue = DispatchQueue(label: "concurrentQueue", qos: .background, attributes: .concurrent, autoreleaseFrequency: .inherit, target: nil)