我正在使用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''!"
答案 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
只是创造了同步执行的幻觉。