Je suppose que vous voulez faire quelque chose comme ça (Notez le code non testé):
Future<DBObject> load(DBObject object, String id) {
var query = "select ... where id='$id'"; // Note: check for SQL injection.
return pool.query(query)
.then((result) => result.toList())
.then((list) => list.forEach((row) => object.import(row)))
.then((_) => object);
}
Avez-vous lu cet article sur l'utilisation de Futures ?
Le point clé est que si une méthode est asynchrone et que le code appelant doit attendre qu'elle se termine, elle doit alors renvoyer un objet Future (ou un Stream dans certains cas). Il n'y a aucun moyen dans Dart d'obtenir qu'une fonction "bloque" en attendant un résultat asynchrone. N'hésitez pas à poser d'autres questions dans les commentaires.