Flutter如何使用Future返回值作为变量

2024-03-08

我想要得到Future返回值并像变量一样使用它。 我有这个Future功能

  Future<User> _fetchUserInfo(String id) async {
    User fetchedUser;
    await Firestore.instance
        .collection('user')
        .document(id)
        .get()
        .then((snapshot) {
      final User user = User(snapshot);
      fetchedUser = user;
    });
    return fetchedUser;
  }

我想像这样获得价值

final user = _fetchUserInfo(id);

但是当我尝试这样使用时

new Text(user.userName);

Dart 无法识别为User班级。它说dynamic.
如何获取返回值并使用它?
我首先做错了吗? 任何帮助表示赞赏!


您可以简化代码:

Future<User> _fetchUserInfo(String id) async {
    User fetchedUser;
    var snapshot = await Firestore.instance
        .collection('user')
        .document(id)
        .get();
    return User(snapshot);
  }

你还需要async/await获取值

void foo() async {
  final user = await _fetchUserInfo(id);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flutter如何使用Future返回值作为变量 的相关文章

随机推荐

  • iOS 分发证书即将到期。我有什么选择?

    我当前的分销证书今天过期了 这意味着我的 AdHoc 和 AppStore 配置文件也都过期了 我有 2 个应用程序已经提交给 Apple 审核 1个正在等待审核 另一个正在 审核中 我似乎无法生成新的分发证书 因为没有选项 只能撤销或下载
  • 如何在基于文档的 macOS 应用程序中处理不同的文档类型?

    如何在一个 macOS 文档应用程序中处理两种不同的自定义文档类型 从 macOS Document App 模板开始 我定义了两种类型 它们也注册在 info plist 中 extension UTType static var tes
  • nhibernate,无法解析属性 QueryOver 仅一张表

    我发现了十几个与我类似的问题 但没有一个能解决我的问题 先感谢您 Ok 我有这门课 public class User IEntity private int id public virtual int Id get return id p
  • iPhone 中的 Twitter 集成无需登录即可阅读公共推文/HashTags?

    大家好 我正在开发一个应用程序 它使用 twitter api 来获取客户的公共推文 他们的标签 目前我正在使用 MGTwitterEngine 它要求用户名 密码来获取推文 我们是否可以通过其他方式在无需登录的情况下获取公共推文及其主题标
  • 逗号分隔列表中值范围的正则表达式

    我想编写一个与数值列表匹配的正则表达式 以逗号分隔的列表给出 允许范围 不允许为空 类似 1 10 20 56 8 7 到目前为止我有 0 9 0 9 0 9 0 9 这完成了大部分工作 除了它只错过了一个范围的情况 例如 1 10 不会验
  • 如何将名称应用于环境?

    全球环境似乎有这个名字R GlobalEnv environment
  • 随机选择矩阵列

    我有一个m x n矩阵 我想在 MATLAB 中的一些神经网络应用程序中使用它 例如 A 24 22 35 40 30 32 42 47 45 39 14 1 10 5 9 2 8 4 1 8 我想随机训练一些列并测试其他剩余的列 因此 第
  • 尝试 rake db:migrate 时未在 Rails 项目中选择数据库

    使用 Rails 应用程序 遇到某种奇怪的数据库 rake 问题 当我执行时 rake db migrate 我收到以下错误 Mysql2 Error No database selected SHOW TABLES See full tr
  • Java中抛出匿名异常

    在 Java 中 即使只是在抛出时声明了异常 也有可能抛出任何异常 如下例 import org springframework dao DataAccessException DataAccessException is abstract
  • AChartEngine,单击时获取绘图值

    我使用 achartengine 编写了一个简单的时间表 我想要做的是通过单击图表上的点来获取已经绘制的值 这可能吗 假设 mChartView 是您的 GraphicalView mChartView setOnClickListener
  • XSL,使用 XML 作为模板的参数

    是否可以通过参数将 XML 传递到 XSL 模板 例如 下面我有模板body调用模板test1通过参数传递一些 XMLvar1 然后我尝试走到节点a使用 XPATH
  • Log4Net 多个记录器

    首先 我在其他主题中看到了很多答案和提示 最相似的是 Log4Net 多个记录器 https stackoverflow com questions 3470272 log4net multiple loggers 3513417 3513
  • xcode 在模拟器和设备上安装速度很慢

    在模拟器上 构建并运行 大约需要 30 秒 在设备上 构建并运行 大约需要 5 分钟 我 99 确信原因是我有很多图像 4000 80mb 构建本身阶段大约需要 2 秒 所以问题在于安装 有人有任何加快速度的建议吗 图像不需要改变 那么是否
  • C Linux:全局变量作为单例位于共享库中

    如果共享库 so 被多个进程使用 是否可以将位于共享库 so 中的全局变量用作单例 例如 初始值为 0 进程 1 递增 var 然后 proc2 递增 val 并打印它 到目前为止 我的实验表明 两个进程都保留变量的副本 如果第一个进程递增
  • Service Worker 即时声明页面的最佳实践

    由于应用程序和用户体验的性质 我目前设置了一名服务工作人员来立即认领该页面 由于此应用程序是从 AppCache 转换过来的 AppCache 为每个用户创建了一个动态清单文件 因此我发现最好的方法是将此清单文件解析为 JSON 数组并将其
  • Rubber 和 Amazon EC2 托管问题 (Net::SSH::AuthenticationFailed: root)

    我想在 Amazon EC2 服务器上托管我的 Ruby on Rails 应用程序 我正在关注橡胶和亚马逊 EC2 http railscasts com episodes 347 rubber and amazon ec2 view a
  • Jupyter 单元格标签:“remove-input”无效

    这是我的设置 我希望在运行笔记本时只看到 测试 一词 而没有代码单元 我对这个功能的理解正确吗 test ipynb print test In JupyterLab Property Inspector Cell Metadata col
  • 如何仅针对 Internet Explorer 7 以编程方式关闭 JavaScript?

    我想使用 JavaScript 和 或 jQuery 代码关闭 JavaScript 前提是在 IE7 中查看页面 如何才能做到这一点 将不胜感激神奇的代码片段 使用条件注释 http msdn microsoft com en us li
  • 在 VS 2008 和 IIS 中调试现有的 ASP.NET 应用程序

    我是一个 ASP NET 新手 我继承了 asp net mvc 代码的基础 为了帮助自己更好地适应面前的一堆源代码 我想在调试器中单步调试它 然而 作为微软平台的新手 我不知道如何解决这个问题 我们的应用程序在许多不同的主机名下提供内容
  • Flutter如何使用Future返回值作为变量

    我想要得到Future返回值并像变量一样使用它 我有这个Future功能 Future