小编Bar*_*rul的帖子

RXJS 在管道内组合多个可观察对象

我有一个返回一定数量 id 的 API 调用。这些 id 中的每一个都用于进行新的 api 调用。这些 API 调用的结果需要组合成一个对象。

起初,我在第一个 api 调用的 .pipe(map) 运算符中使用了一个循环。在这个循环中,我进行了第二个 api 调用,并且在每个调用的 .pipe(map) 运算符中,我将在我的 angular 组件中编辑一个变量。

这不是很漂亮,我实际上想知道这是否是线程安全的。我知道 javascript 是单线程的,但是让多个异步进程混淆同一个全局变量似乎不太安全。

之后,我只是通过循环 apiCall1 返回的 Id 将第二个 api 调用返回的 observable 存储在一个数组中,并使用 forkJoin 相应地订阅和处理每个结果(参见示例)。

然而,这不是很漂亮,我想知道是否有我可以在我的管道中使用的运算符?

所以而不是(伪代码):

  .pipe(
      map(ids=> {

        let observables = []
        for (const id of ids) {
         observables.push(this.service.getSomeStuff(id));
        }

        forkJoin(...observables).subscribe(dataArray) => {
          for (data of dataArray) {
            //Do something
          }
        });

      }),
      takeWhile(() => this.componentActive),
      catchError(error => {
        console.log(error);
        return throwError(error);
      })
    )
    .subscribe();
Run Code Online (Sandbox Code Playgroud)

是否有一个运算符使它像这样:

  .pipe( …
Run Code Online (Sandbox Code Playgroud)

rxjs angular rxjs-pipeable-operators

10
推荐指数
2
解决办法
1万
查看次数

已经存在具有相同运行时名称的部署

我正在尝试使用 Maven Wildfly 插件将我的 .war 部署到我的应用程序服务器。

所以我在 IntelliJ 中配置了这个,它为我部署了战争,但我想使用 Maven,这样我也可以使用 jenkins 进行部署。

当我调用 mvn wildfly:deploy 时,出现以下错误:

[错误] 无法在项目 Kwetter 上执行目标 org.wildfly.plugins:wildfly-maven-plugin:1.2.1.Final:deploy (default-cli):无法执行目标部署:{"WFLYCTL0062: 复合操作失败并被回滚。失败的步骤:" => {"操作步骤 1" => "WFLYSRV0205: 已经有一个名为 Kwetter.war 的部署,其运行时名称相同 Kwetter.war"}}

所以我转到 jboss-cli.bat 并尝试删除取消部署 .war。但是当我去那里调用 undeploy Kwetter.war 时,我得到:

取消部署失败: {"WFLYCTL0062: 复合操作失败并已回滚。失败的步骤:" => {"操作步骤 1" => "WFLYCTL0216: 管理资源 '[(\"部署\" => \"Kwetter.战争\")]'未找到"}}

当我尝试取消部署 *.war 时,我收到相同的错误,所以看起来没有部署任何内容?

我还尝试在我的pom.xml 中添加force = true,这样它就会覆盖已经存在的.war,但这只会给我带来同样的错误。

我包含了我的 pom.xml 以供参考:

<repositories>
    <repository>
        <id>maven2-repository.java.net</id>
        <name>Java.net Repository for Maven</name>
        <url>http://download.java.net/maven/2/</url>
        <layout>default</layout>
    </repository>
</repositories>

<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <failOnMissingWebXml>false</failOnMissingWebXml>
</properties>

<build> …
Run Code Online (Sandbox Code Playgroud)

java maven wildfly

3
推荐指数
1
解决办法
8586
查看次数

标签 统计

angular ×1

java ×1

maven ×1

rxjs ×1

rxjs-pipeable-operators ×1

wildfly ×1