Ik vermoed dat je zoiets als dit wilt doen (let op niet-geteste code):
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);
}
Heb je dit artikel gelezen over het gebruik van futures?
Het belangrijkste punt is dat als een methode asynchroon is en de aanroepende code moet wachten tot deze is voltooid, deze dan een Future-object moet retourneren (of in sommige gevallen een Stream). Er is geen manier in Dart om een functie te "blokkeren" die wacht op een asynchroon resultaat. Stel gerust wat meer vragen in de comments.