Cómo invocar un método una y otra vez hasta que devuelva un valor `Futuro` que contenga` Ninguno`

Dado un método que devuelve unFuture Me gusta esto...

def remove(id: String): Future[Option[User]] = Future {
  // removes and returns the user identified by `id`
}

... cómo lo invoco una y otra vez hasta que devuelva unFuture valor que contieneNone?

EDITAR

Quizás valga la pena mencionar que no necesito recopilar los resultados. Solo necesito invocar el método siempre que encuentre un usuario que eliminar. La idea sería tener unloop eso se detiene cuandoremove devolucionesFuture[None].

Respuestas a la pregunta(3)

Su respuesta a la pregunta