【发布时间】:2020-02-13 09:05:02
【问题描述】:
可能只有我一个人,但 Flutter 中的异步编程似乎是一场绝对的噩梦。 javascript/typescript 中非常简单的东西似乎变得不必要地困难。例如,我正在尝试创建一个简单的函数来检查用户是否经过身份验证:
Future<bool> isLoggedIn() async {
var user = await FirebaseAuth.instance.currentUser();
return user == null ? false : true;
}
然后在这样的场景中使用这个函数:
Widget _buildChild() async {
var auth = await user.isLoggedIn();
if (auth) {
return new Navigation();
} else {
return new LoginUI();
}
}
但是第二个函数也需要返回一个future?
标记为“异步”的函数必须具有可分配给“未来”的返回类型。
使用 then() 而不是 await 也不起作用。在同步上下文中使用异步编程之前,我曾多次遇到过这个问题。也许只是它的外观和感觉与 Promises 非常相似,我完全错过了文档中的功能。
【问题讨论】:
标签: firebase asynchronous flutter dart