当前位置: 首页 > 知识库问答 >
问题:

对数组的每个项进行api调用

郜联
2023-03-14

我有一个object of days数组,我想对每个数组项进行单独的HTTP调用。但条件是当我得到前一个项目的成功响应时,只有我想做下一个项目的API请求,直到我想等待。假设我的数组中有5个项,所以它将立即调用API。我希望每个项目的API请求顺序。意味着当我的第一个items API请求响应为真时,第二个items API应该调用。

// component call

daysArr = [
    {
      day: 'Monday',
      date: '20-10-2018'
    },
    {
      day: 'Tuesday',
      date: '21-10-2018'
    },
    {
      day: 'Wednesday',
      date: '22-10-2018'
    },
    {
      day: 'Thursday',
      date: '23-10-2018'
    },
    {
      day: 'Friday',
      date: '24-10-2018'
    },
    {
      day: 'Saturday',
      date: '25-10-2018'
    },
    {
      day: 'Sunday',
      date: '26-10-2018'
    }
  ]
  
  postCall() {
  let apiUrl = 'https:someurl.com/api/dayspost';
  for (let i = 0; i < this.daysArr.length; i++) {
  
      // how to check previous request response & make request for next array element
      
    this.service.createPost(apiUrl,this.daysArr[i])
    .subscribe(response => {
      console.log('response',response)
    })
  }
}

//service post call

createPost(url, post) {
   return this.http.post(url,post)
    .pipe(
      map(data => {
        return data;
      })
     )
 }

上面是显示API请求的片段。但我不明白如何检查我以前的响应&然后只对新的数组元素进行新的API/POST调用。

谢谢你。

共有1个答案

梅欣然
2023-03-14

您可以这样做:

let i = 0;
makeRequest(apiUrl, this.daysArr[i]){
  this.service.createPost(apiUrl,post)
    .subscribe(response => {
       console.log('response',response)
       i++;
       if(i < this.days.length){
          makeRequest(apiUrl, this.daysArr[i])
       }
  })
}

我现在没有IDE来尝试这个,但是它应该可以很好地工作

 类似资料:
  • 最近我尝试使用ApacheFlink进行快速批处理。我有一个表,它有一个列:value和一个不相关的索引列 基本上我想计算每5行值的平均值和范围。然后我将根据我刚才计算的平均值计算平均值和标准偏差。所以我想最好的方法是使用窗口。 看起来是这样的 但是我不知道用。我试过,但它说没有这样的输入。我只希望它在从源代码读取时按顺序分组。但是它必须是一个时间属性,所以我不能使用索引列作为排序。 我是否必须添

  • 问题内容: 我的数组是这样的: 我想将其转换为: 因此,基本上,分组依据。 我尝试着: 我只是不知道如何处理相似组值的分组。 问题答案: 首先,在JavaScript中,使用遍历数组通常不是一个好主意。 因此,您可以尝试执行以下操作: 在这里使用中间对象有助于加快处理速度,因为它可以避免嵌套循环搜索数组。另外,因为使用迭代遍历对象(而不是数组)是合适的。 附录 FWIW,如果要避免在结果数组中出现

  • 问题内容: 我有一个类似于下面的数据框 我想为列做一个空值估算,,在正向充填,但每个组。那就是说,我希望将前向填充应用于每个。我怎样才能做到这一点? 问题答案: 使用每团体向前填充所有列,但如果每个小组第一值是在那儿没有更换,所以可以使用和最后浇铸成整数: 详情: 要么:

  • 问题内容: 我正在尝试通过另一个数组的值对一个数组的行进行排序。例如: 我想按降序对arr1进行排序,并保持arr1和arr2之间的当前关系(即,在对两者进行排序之后,and的行都相同)。 问题答案: 用法如下: 本示例以降序排列。

  • 问题内容: 我知道必须在某些地方回答此问题,但我找不到它。 问题 :groupby操作后对每个组进行采样。 问题答案: 应用lambda并使用param调用:

  • 比方说,我有一个购物车的食品杂货,每个项目都有一个唯一的ID。当有人点击“购买”时,会发送一个数组,其中包含购物车中每件商品的对象。购物车各不相同,所以有时可能是2个项目,有时是6个项目,等等。 例子: 我需要我的SQL表“可用的杂货”来根据购买的商品进行更新。 对于一个杂货项目,我会使用以下内容: 既然我现在有多件商品,我如何让查询为购买的每件商品运行?或者作为一个大规模的查询,根据购买的商品数