为了账号安全,请及时绑定邮箱和手机立即绑定

Angular,如何进行连续的、依赖的http get请求

Angular,如何进行连续的、依赖的http get请求

一只萌萌小番薯 2022-10-08 15:05:52
我想在另一个完成后执行一个 http get 请求。第二个请求的端点 URL 需要依赖于第一个请求。我尝试在 Angular 中使用类似这样的内容嵌套请求:this.http.get(endpoint1).subscribe(   success => {      this.http.get(endpoint2 + success).subscribe(         anotherSuccess => console.log('hello stackoverflow!')      );   });关于stackoverflow的第一个问题,如果我应该提供更多细节,请告诉我。
查看完整描述

2 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

在这里你可以找到如何做到这一点,你有多种选择:

订阅:

this.http.get('/api/people/1').subscribe(character => {

  this.http.get(character.homeworld).subscribe(homeworld => {

    character.homeworld = homeworld;

    this.loadedCharacter = character;

  });

});

与mergeMap


this.homeworld = this.http

  .get('/api/people/1')

  .pipe(mergeMap(character => this.http.get(character.homeworld)));

有一个带有 forkJoin 的版本,但与 subscribe 和 mergeMap 相比并不明确。


查看完整回答
反对 回复 2022-10-08
?
慕标琳琳

TA贡献1830条经验 获得超9个赞

您可能应该尝试使用ngrx(redux) 根据success操作触发第二个请求。

流程应该是这样的:从组件分派一个动作 -> 调用第一个请求 -> 请求触发一个成功动作 -> 成功效果触发第二个请求,其中包含来自前一个请求的有效负载。

//img1.sycdn.imooc.com//634121780001ced119101070.jpg

在此处阅读文档


查看完整回答
反对 回复 2022-10-08
  • 2 回答
  • 0 关注
  • 85 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信