我用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/