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

标签 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’的实例!”

最佳答案

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

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/

相关文章:

flutter - 当 child 等待 parent 的设置状态完成时,如何在两个有状态小部件之间使用 FutureBuilder?

sql - 如何将 postgres 函数的结果保存到变量中?

Flutter web - 向下滚动但水平滚动

Dart 库瀑布原理,如来自 caolan 的异步

unit-testing - HttpClient & 单元测试

dart - 类型 'Future<dynamic>' 不是类型 'Future<int>' 的子类型 flutter 数据库创建异常

postgresql - 如何查找违反外键约束的行?

node.js - 如何修复 "Unhandled rejection SequelizeDatabaseError: relation "ABC“不存在”?

php - 无法使用 symfony 和 doctrine 及其关联对象或表保存到 postgresql 中?

flutter - 如何重置步数计数器 flutter