获取方法 Future<T> 的结果 flutter

Getting the result of a method Future<T> flutter

我有一个方法

Future<FirebaseUser> getCurrentUser() async {
    FirebaseUser user = await _firebaseAuth.currentUser();
    return user;
}

我希望能够通过以下方式在其他模块中调用它:

if (class.getCurrentUser() != null) {
    // Do something
}

我似乎无法弄清楚如何获取实际值,而不是存储该值的 Future 对象。例如,在 C++ 中,我可以只执行 future.get(),这将阻止 return 对我的价值。有颤动的等价物吗?我是这门语言的新手,已经搜索了几个小时,但似乎找不到解决这个确切问题的方法。

您必须像这样在方法调用中等待结果:

FirebaseUser currentUser = await class.getCurrentUser();
if (currentUser != null) {
    // Do something
}

从你的代码来看,你似乎只需要 1 await:

Future<FirebaseUser> getCurrentUser() async {
    return _firebaseAuth.currentUser();
}
if (await class.getCurrentUser() != null) {
    // Do something
}