首页 > 解决方案 > 管道中的多个 POST 调用未执行

问题描述

我是 Angular 的新手,真的知道问题出在哪里,但我有一个像这样的管道的方法,到目前为止只需要一个配置,这个工作正常

.pipe(
     .
     .
    //addConfigToUser is a POST call
    flatMap(() => this.service.addConfigToUser(config))
     .
     .
)

但是现在我需要修改方法以便对配置中的每个条目执行相同的发布请求,但由于某些原因并非如此

.pipe(
    .
    .
    flatMap(() => configElemnt.map(
      //addConfigToUser is a POST call
      config => this.service.addConfigToUser(configElemnt)
    .
    .
    ))

一种解决方法是访问索引并以这种方式完成工作,如下所示:

pipe(
    .
    .
    //addConfigToUser is a POST call
    flatMap(() => this.service.addConfigToUser(config[0])),
    flatMap(() => this.service.addConfigToUser(config[1]))
    .
    .
)

没有抛出任何错误,但 POST 请求也没有

标签: angularrxjs

解决方案


我想你可以用forkJoin这个:

.pipe(
  flatMap(
    () => forkJoin(
      ...configElemnt.map(cfg => this.service.addConfigToUser(cfg))
    )
  ),
)

请注意,如果所有提供的 observable至少发出一次并且完成forkJoin,它将发出一个结果值数组。


推荐阅读