[英]Return a tuple for a forkJoin rxJS
我有一个请求数组,我想与forkJoin
并行执行,然后映射到结果集,其中第一项是原始对象,第二项是请求的结果。 例如:
const deletionRequests = users.map(user => this.userService.deleteUser(user.id));
forkJoin(...deletionRequests)
.subscribe(results => console.log(results);
目前, results
只包含一个布尔值,但我想改为接收[User, Result]
对象,以便我可以使用它来修改我的用户模板列表。
因为forkJoin()
应该返回一个布尔值数组,这些值与用户数组的顺序相同。
results[n]
是user[n]
的结果
话虽如此,你想要的可能更接近
const deletionRequests = users.map(user =>
this.userService.deleteUser(user.id).pipe(
map(result => ([user, result]))
)
);
这根本不会改变forkJoin
,它只是改变你的流数组,这样它们现在输出一个元组。 如果您想对用户执行额外的处理,这可能会很好。 例如,过滤掉错误的用户名:
const deletionRequests = users
.filter(user => isFilteredName(user.name))
.map(user =>
this.userService.deleteUser(user.id).pipe(
map(result => ([user, result]))
)
);
现在用户和结果在forkJoin
之后不会forkJoin
,因此需要额外的处理来将您的流映射到元组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.