[英]How to map two rxjs streams?
I have two async streams:我有两个异步流:
users = new Subject<User[]>();
groups$ = new Subject<Rights>();
mapped$ = new Subject();
I want to map first stream with value from the second.我想用第二个流的值映射第一个流。 Using imperative way I do this like:
使用命令式方式我这样做:
users.foreach((user: User => {
user.value = groups.find((g) => g.user == user.id)?.value
});
How to do that using RXJS to get mapped result in mapped$
?如何做到这一点使用RXJS得到的映射结果
mapped$
?
You can use combineLatest
to emit when either users$
or groups$
emits, then map
to add the group to each user:您可以使用
combineLatest
在users$
或groups$
发出时发出,然后map
以将组添加到每个用户:
combineLatest([users$, groups$]).pipe(
map(([users, groups]) => users.map(user => {
user.value = groups.find(g => g.user == user.id)?.value
return user
}))
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.