【问题标题】:Angular 4 Http Chain RequestsAngular 4 Http 链请求
【发布时间】:2018-03-30 00:51:46
【问题描述】:

我无法弄清楚如何使用 Http 请求的结果来发出另一个 Http 请求。让我们举例说明一下; 首先我从这个 api 获取数据:

[{"id": 1}]

其次,我应该从另一个 api 获取数据,结果是:

[{"id": 1, "name": "id labore ex et quam laborum", }]

所以我应该检查 api İf 第一个数据id =1然后我应该发布"id labore ex et quam laborum"。我愿意接受任何建议。谢谢

【问题讨论】:

  • 你的问题不清楚......据我了解,如果第一个 http 请求,响应是 > id:1,你想请求第二个名称:id labore ex et quam labourum,对吗?
  • 是的,没错。如果第一个 api 结果为 1,那么我应该发布 html "id labare ex et quam labourum"
  • 试试 this.http.get(url).subscribe( (data) => if(data.id == 1) this.http.post(url, data))
  • 但第一个 api 结果不止一个。我做不到。

标签: angular api http


【解决方案1】:

您可以使用 rxjs switchMap 运算符。

只需导入它:

import 'rxjs/add/operator/switchMap';

然后像这样使用它:

this.http.get('/api/items').switchMap(data => {
  // do something with your data
  return this.http.get(`https://api.com/${data.id}`); // use it for example in your http request
}).subscribe(data => {
    this.results = data['results'];
});

您可以在here找到更多相关信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-30
    • 2018-05-27
    相关资源
    最近更新 更多