您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何基于Flutter中的Future结果构建Stream?

如何基于Flutter中的Future结果构建Stream?

您永远都不应使用Future<Stream>,这是双重异步的,这是不必要的。只需返回一个Stream,然后在准备就绪之前不必发出任何事件。

目前尚不清楚try/ catch在保护什么,因为返回non- Future不会抛出异常。如果返回流,则也要在流上发出任何错误

您可以将代码重写为:

Stream<QuerySnapshot> getDataStreamSnapshots() async* {
  // Get current user.
  final User user = await FirebaseAuth().currentUser();
  String userId = user.uid;

  yield* db
    .collection(db)
    .where("uid", isEqualTo: userId)
    .snapshots();
}

一个async*功能是异步的,所以你可以使用await。它返回一个Stream,您可以使用yield event;或在流上发出事件yield* streamOfEvents;

其他 2022/1/1 18:15:11 有262人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶