【发布时间】:2019-03-01 20:00:01
【问题描述】:
我对我的数据库进行了一个函数调用,它会在获取数据后更新一个本地对象并需要一些时间。
由于异步任务,程序移动到下一行代码。不幸的是,我需要通过异步调用更新下一行代码的本地对象。
如何在执行下一段代码之前等待我的异步任务完成?谢谢
编辑:添加代码来解释
updateUser() {
return FutureBuilder(
future: updateUserData(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
if (snapshot.connectionState != ConnectionState.done) {
return Text("hello not");
} else {
return Text('Hello!');
}
},
);}
@override
Widget build(BuildContext context) {
switch (_authStatus) {
case AuthStatus.notSignedIn:
return new LoginPage(
auth: auth,
CurrentUser: CurrentUser,
onSignedIn: _signedIn,
);
case AuthStatus.signedIn:
{
updateUser(); //THIS TAKES A COUPLE SECONDS TO FINISH BUT I NEED TO SEND IT TO THE NEXT PAGE
return new HomePage(
auth: auth,
CurrentUser: CurrentUser,
onSignedOut: _signedOut,
);
}
}
}
}
【问题讨论】:
-
如何等待?使用
await -
更多关于
awaithere
标签: asynchronous dart flutter dart-async