如何解决RxDart为流中的每个项目获取项目并加入结果
我有一个代表任务的简单数据类:
class Task {
String name;
String userId;
}
以及一系列任务:
class TaskDataSource {
Stream<List<Task>> getAll() {
}
对于每个task
,我还想获取分配给它的user
:
class UsersDataSource {
Stream<User> getById(String userId);
}
最后将task
与user
组合在一起,创建一个包含用户数据和任务数据的对象。我在玩zip
和flatMap
函数,但找不到有效的解决方案。任何帮助将不胜感激。
解决方法
使用Rx.forkJoinList
:
class UserAndTasks {
final User user;
final Task task;
UserAndTasks(this.user,this.task);
}
void main() {
UsersDataSource usersDataSource;
TaskDataSource taskDataSource;
taskDataSource
.getAll()
.flatMap(
(tasks) => Rx.forkJoinList(tasks
.map((task) => usersDataSource
.getById(task.userId)
.map((user) => UserAndTasks(user,task)))
.toList()),)
.listen((List<UserAndTasks> event) => print(event));
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。