Angular 4链接http请求正确

时间:2017-11-07 13:34:12

标签: angular http get

我目前正在我的组件上执行多个HTTP get请求(链接),onInit'。我基本上想要获取id(字符串),将它们映射到本地数组,对于此数组的每个元素执行HTTP get请求(id),将这些结果映射到本地数组,获取id等等。

因此,您可以在彼此之后告诉很多重复请求,其中每个请求取决于前一个请求的结果。

// Get the dataassociations from the distinct ids
for (const dataASSID of distinctDataAssIDs) {
  this.api.getDataAssociationByID(dataASSID).subscribe(
    data => {
    this.DataAssociations.push(data.body.entities.DATAASSOCIATIONS[0]);
  });
}

// Get dataobject ids from dataassociations
const dataobjIDs: string[] = new Array();
for (const dataAss of this.DataAssociations) {
  console.log(dataAss.languages.DUT + 'rsultrtrt');
  if (dataAss.DATAOBJECTS !== undefined) {
  for (const id of dataAss.DATAOBJECTS) {
    dataobjIDs.push(id);
  }
}
}
console.log(dataobjIDs);

// make ids distinct
let distinctDataObjIDs = new Array();
distinctDataObjIDs = Array.from(new Set(dataobjIDs));

console.log(distinctDataObjIDs);

// Get the dataobjects from the distinct ids
for (const dataObjID of distinctDataObjIDs) {
  this.api.getDataObjectByID(dataObjID).subscribe(data => {
    this.DataObjects.push(data.body.entities.DATAOBJECTS[0]);
  });
}

我知道它目前是意大利面条代码,但我的问题是我如何链接这些请求?因为在第一个get请求的subscribe()之后。由于在执行代码期间尚未收到响应,因此无法执行下一步。

更新1(基于重复) 我希望是这样,但是我的请求都是因为循环而使我的情况变得困难。因为我想对前一个请求中获得的每个id执行请求

0 个答案:

没有答案