繁体   English   中英

为 forkJoin rxJS 返回一个元组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM