Mit gæt er, at du vil gøre noget som dette (Bemærk utestet kode):
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 denne artikel om at bruge Futures?
Nøglepunktet er, hvis en metode er asynkron, og den kaldende kode skal vente på, at den er fuldført, så skal den returnere et Future-objekt (eller en Stream i nogle tilfælde). Der er ingen måde i Dart at få en funktion til at "blokere" mens du venter på et asynkront resultat. Stil gerne nogle flere spørgsmål i kommentarerne.