如何从dart中的conn.query获取数据

时间:2016-01-05 12:29:32

标签: postgresql dart dart-async

我正在使用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''!"

1 个答案:

答案 0 :(得分:1)

如果您在调用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(或者#34;旧" .then((value) {}))。 async + await只是创造了同步执行的幻觉。