¿Cómo declarar correctamente una propiedad calculada, cuando el cálculo utiliza hilos de fondo?

Estoy tratando de declarar una propiedad calculada que consiste en un bloque, ejecutado en el hilo de fondo. Entonces, cuando abordo esta propiedad, es nula, ya que el cálculo devuelve el resultado cuando no está listo. ¿Cómo corregir esto mejor? ¡Gracias!

enum Result<T> {
   case error(error: Error)
   case success(data: T)
}

var userID: Result<CKRecordID>? {

  var result: Result<CKRecordID>? = nil

  container.fetchUserRecordID { recordID, error in
    if let error = error { result = .error(error: error) }
    if let recordID = recordID { result = .success(data: recordID) }
  }

  return result
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta