Min gissning är att du vill göra något så här (Observera otestad kod):
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);
}
Har du läst denna artikel om att använda Futures?
Nyckelpunkten är om en metod är asynkron och anropskoden måste vänta på att den ska slutföras, då måste den returnera ett Future-objekt (eller en Stream i vissa fall). Det finns inget sätt i Dart att få en funktion att "blockera" i väntan på ett asynkront resultat. Ställ gärna några fler frågor i kommentarerna.