postgres データベース クエリを使用して、次のアクションを決定します。次のコード行を実行する前に、結果を待つ必要があります。これconn.query
で Future が返されますが、コードを別の関数に配置すると、それを非同期にすることができません。
main() {
// get the database connection string from the settings.ini in the project root folder
db = getdb();
geturl().then((String url) => print(url));
}
Future geturl() {
connect(db).then((conn) {
conn.query("select trim(url) from crawler.crawls where content IS NULL").toList()
.then((result) { return result[0].toString(); })
.catchError((err) => print('Query error: $err'))
.whenComplete(() {
conn.close();
});
});
}
戻り値を待ちたいだけですgeturl()
が、何をしても構いません。すぐに発火します。ここで何が欠けているかを説明するドキュメントの一部を誰かに教えてもらえますか?