Mysql
 sql >> Database >  >> RDS >> Mysql

sqljocky interroga il database in modo sincrono

La mia ipotesi è che tu voglia fare qualcosa del genere (nota il codice non testato):

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);
}

Hai letto questo articolo sull'utilizzo di Futures?

Il punto chiave è che se un metodo è asincrono e il codice chiamante deve attendere il completamento, deve restituire un oggetto Future (o uno Stream in alcuni casi). Non c'è modo in Dart di far "bloccare" una funzione in attesa di un risultato asincrono. Sentiti libero di porre altre domande nei commenti.