我用postgresql做 Dart ,我不能返回数据conn.query(rows)。但是结果来了,如何返回它,简单的代码是

    main(){
     someOtherFunc();
    }
   Future add() async{
   var uri = 'postgres://postgres:root@localhost:5432/testdb';
   var conn = await connect(uri);
   var sql = 'select * from test';
   return conn.query(sql).toList();
 }


 Future someOtherFunc() async {
   print(await add());
 }

我得到了“'_Future'实例”的返回!

最佳答案

如果在调用await的函数中使用add(),则会获得所需的结果

Future add() async {
  var uri = 'postgres://postgres:root@localhost:5432/testdb';
  var conn = await connect(uri);
  var sql = 'select * from test';
  return conn.query(sql).toList();
}

Future someOtherFunc() async {
  print(await add());
}
async具有传染性。调用异步函数时,无法返回到同步执行。一切取决于异步结果,都需要使用await(或“旧的” .then((value) {}))。 async + await只会造成同步执行的错觉。

关于postgresql - 如何从dart中的conn.query获取数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34611764/

10-15 21:06