Tôi đoán là bạn muốn làm điều gì đó như thế này (Lưu ý mã chưa được kiểm tra):
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);
}
Bạn đã đọc bài viết này chưa về việc sử dụng Hợp đồng tương lai?
Điểm mấu chốt là nếu một phương thức không đồng bộ và mã gọi cần phải đợi nó hoàn tất, thì nó phải trả về một đối tượng Tương lai (hoặc một Luồng trong một số trường hợp). Không có cách nào trong Dart để có được một hàm để "chặn" chờ kết quả không đồng bộ. Vui lòng đặt thêm một số câu hỏi trong phần bình luận.