私の推測では、あなたはこのようなことをしたいと思っています(テストされていないコードに注意してください):
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);
}
この
重要な点は、メソッドが非同期であり、呼び出し元のコードがそれが完了するのを待つ必要がある場合、Futureオブジェクト(または場合によってはStream)を返す必要があるということです。 Dartには、非同期の結果を待つ関数を「ブロック」する方法はありません。コメントでさらに質問してください。