在 Angular 2 中进行并行调用 http get 或 post 调用

2024-05-11

如何在 Angular 2 中进行并行调用 HTTP get 或 post 调用?

我有 2 个服务电话,其中一个愈伤组织的响应必须拨打另一个电话。
有人可以建议我如何通过错误处理场景进行这些并行调用吗?


如果您的服务是Observable基于而不是Promise你可以做forkJoin。它并行运行所有可观察的序列。

对于 RxJS 版本

import 'rxjs/add/observable/forkJoin';

确保import forkJoin from rxjs library

Observable.forkJoin(myService.getCall(),
            myService.postCall(),
            ...)
            .subscribe((res) => {
              res[0] // this is first service call response,
              res[1] // this is second service call response
              ...
});

或者,如果您希望它是连续的,请执行第一个调用,然后完成第二个调用。

myService.getCall().subscribe((response) => {
  // handle response
}, (error) => {
  // handle error here
}, () => {
  // this is complete block and it is triggered when obervable is complete
  myService.postCall();
}

EDIT:适用于 RxJS 6 及以上版本forkJoin已经改变

Service:

import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { forkJoin, Observable } from 'rxjs';

@Injectable()
export class MyService {

  constructor(private  http: HttpClient) {
  }

  getAndPost(): Observable<any> {
    return forkJoin(
      this.http.get('/api/get'),
      this.http.post('/api/post')
    );
  }
}

成分:

firstResponse: any;
secondResponse: any;

constructor(private myService: MyService) {
}

myFunction(): void {
  this.myService.getAndPost().subscribe((res) => {
    this.firstResponse = res[0],
    this.secondResponse = res[1]
  });
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Angular 2 中进行并行调用 http get 或 post 调用 的相关文章

随机推荐

  • CAShapeLayer 路径在动画后消失 - 需要它留在同一个地方

    感谢 StackOverflow 上的一些帮助 我目前正在 CAShapeLayer 中对路径进行动画处理 以制作一个从移动精灵指向屏幕上另一个移动点的三角形 动画完成后 三角形就会从屏幕上消失 我使用的持续时间非常短 因为每个精灵每 0
  • SDL 鼠标位置调整大小后裁剪

    我在 SDL 中的鼠标位置上遇到了一些奇怪的行为 如果我将窗口大小调整得更大 则任一鼠标事件的 x y 位置似乎都限制为原始窗口的宽度和高度 如果我缺少一些函数调用来告诉 SDL 鼠标区域的大小已增加 应用程序的相关部分 void Resi
  • Laravel 所有会话 ID 与 Redis 驱动程序

    在我的应用程序中 我希望允许某些用户能够注销除他 她之外的所有其他用户 当会话驱动程序设置为文件时 我已经完成了此功能 但现在我使用 redis 作为会话驱动程序 并且我无法找到任何方法来列出所有当前会话 就像我在文件时所做的那样司机 问题
  • 如何使用字符串参数来区分命名空间或类型?

    我需要在 NET 2 0 C 脚本中获取一些 JSON 输出 目标是使用一种方法来输出我需要的所有 JSON 提要 所有模型都具有相同的 id 和 name 属性 因此我有大约 15 个命名空间 它们在这里具有相同的部分 简而言之 因为我使
  • 如何声明文本字段只能包含整数?

    在 swift 中 我试图创建一个文本字段 该文本字段将允许启用按钮 但仅当文本字段包含整数时 我怎样才能做到这一点 两件事情 指定键盘类型以仅显示数字键盘 所以 设置keyboardType to numberPad 然而 这还不足以阻止
  • Powershell 调用程序集委托

    我有一个用于过程控制应用程序的 dll 程序集 我在我的内部使用 load电源外壳 script 该DLL包含我需要使用的委托类型 委托名称是 X Y Delegate 我在该 DLL 中有另一个方法 应该这样调用 Method deleg
  • 具有动态调整大小的 CSS 精灵

    我决定为我的整个网站 30 个图像 创建一个精灵表 这样我就可以加载 1 个图像并仅加载参考位置 从而减少图像加载时间和服务器调用 我的问题 是否可以引用 sprite 表中的图像 然后将该图像调整为其父容器的 100 例如 SomeDiv
  • MyBatis 映射中的复合键

    我无法将组合键传递给 MyBatis
  • 未经编辑,无法在 pptx 中的 BarChart 中查看 Apache POI 更新的数据值

    我有一个 pptx 模板 它只有一张用于测试目的的幻灯片 该幻灯片有一个简单的条形图 我可以通过在 pptx 文件上双击条形图来编辑条形图 并且可以更改 Sheet1 条形图数据表 中的值 并且我可以立即在条形图中看到更改 现在 我尝试使用
  • 无对等证书例外 - Volley 和具有自签名证书的 Android

    我正在尝试让我的应用程序通过 https 与我的服务器通信 由于我不想付费让受信任的 CA 签署我的服务器证书 解决方案是使用自签名证书 因此 我创建了 caconfig cnf 如下所示 ca default ca CA default
  • Gmail 菜单按钮

    我希望编写一个 Google 脚本来存档所有早于某个日期的电子邮件 在该脚本中 我将添加一个自定义按钮 就像在 Google Sheets 中一样 以便我可以运行我的脚本 Google 脚本中是否存在向 Gmail 中的 UI 添加菜单 按
  • Win32 API:如何读取序列号,或者如果不是数据则在超时内退出

    我需要一个函数来从串行端口读取数据 或者如果在时间间隔内没有数据则返回 例如 在 GNU Linux 上你可以使用poll orselect read Windows 中有类似的东西吗 下面是我尝试过的 它应该可以工作 但是功能获取重叠结果
  • VS2012如何通过IntelliSense显示标准C++库的文档?

    几天前 我开始使用 Visual Studio 2012 学习 C 我习惯于使用 IntelliJ IDEA 进行 Java 编程 并且在调用方法时总是会显示文档和预期参数 有没有办法在 VS2012 中为 C 执行此操作 如果我理解正确的
  • 硒 Twitter java

    我正在尝试使用 Selenium Webdriver 连接到我的 Twitter 帐户 WebDriver driver new FirefoxDriver driver get https www twitter com login We
  • Android5.0中如何使用camera2 API实时获取每一帧数据

    我正在与相机2Basic https github com googlesamples android Camera2Basic现在尝试获取每一帧数据来进行一些图像处理 我在Android5 0中使用camera2 API 仅进行相机预览时
  • 使用 Python + Zipline + Docker + Jupyter 获取 JSONDecodeError:期望值:第 1 行第 1 列(字符 0)

    我使用 Docker 安装了 Zipline 和 Jupyter https github com quantopian zipline blob master Dockerfile https github com quantopian
  • 将数组文字传递给 PostgreSQL 函数

    我有一个包含 select 语句的 Postgres 函数 我需要使用包含字符串值数组的传入变量添加条件 CREATE OR REPLACE FUNCTION get questions vcode text RETURN return v
  • 如何驯服 Windows 标头(有用的定义)?

    在其中一个答案中this https stackoverflow com questions 1394132 macro and member function conflict问题jalf https stackoverflow com
  • git svn 分支导致身份验证失败

    我正在尝试通过以下方式完成所有分支和合并git svn 但是我对颠覆中的分支很感兴趣 我们的管理员告诉我 我对存储库拥有完整的读 写权限 并且我可以获取最新的代码 为了测试 我删除了我的 subversion svn simple目录并运行
  • 在 Angular 2 中进行并行调用 http get 或 post 调用

    如何在 Angular 2 中进行并行调用 HTTP get 或 post 调用 我有 2 个服务电话 其中一个愈伤组织的响应必须拨打另一个电话 有人可以建议我如何通过错误处理场景进行这些并行调用吗 如果您的服务是Observable基于而