gpt4 book ai didi

asynchronous - 如何在执行下一条指令之前完成异步 Future 任务 Flutter

转载 作者:行者123 更新时间:2023-12-05 02:15:06 24 4
gpt4 key购买 nike

我对我的数据库进行了一个函数调用,它在获取数据后更新了一个本地对象并花费了一些时间。

由于异步任务,程序移动到下一行代码。不幸的是,我需要通过下一行代码的异步调用更新的本地对象。

如何在执行下一段代码之前等待我的异步任务完成?谢谢

编辑:添加代码解释

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,
);
}
}
}
}

最佳答案

您可以在async 函数中使用await 关键字。

例如:

  void someFunc() async {
await someFutureFunction();
// Your block of code
}

这里你的代码块不会运行,直到 someFutureFunction 返回一些东西。

关于asynchronous - 如何在执行下一条指令之前完成异步 Future 任务 Flutter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52510979/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com