【问题标题】:ECMAScript 6 - Loop through array to make API POST callsECMAScript 6 - 遍历数组以进行 API POST 调用
【发布时间】:2020-12-02 13:08:45
【问题描述】:

我有一个格式为“ABC, DGE, GHI, ....”的输入

我想将此逗号分隔的列表转换为数组,然后调用我的 API 对数组中的每个值执行 POST 请求。谁能给我指点一下最好的方法?

例子

Call 1 POST data "caller" tens=ABC
Call 2 POST data "caller" tens=DFE
Call 3 POST data "caller" tens=GHI

工作思路

var tens = "ABC, DEF, GHI";
var letters = tens.split(',');
const Array = callAPIs(letters) 

var data = {};

var caller_id = "caller";
data.caller_id = caller_id;

function callAPIs(letters) {
  var Array = [];
  for (let i = 0; i < letters.length; i++) {
   var apiRequest = http.request({
    'endpoint': 'http://xxxxxxxxxxxxxxxxxxxxxxx',
    'path':'/api/v1/table/record', 
    'method': 'POST',
    "headers": {
    "Authorization": "Basic xxxxxxxxxxxxxxxxxxxxxxxxxxx=",
    "Content-Type": "application/json"
    }
    }); 

【问题讨论】:

  • 你已经用逗号分割了,所以你只需要修剪数组中的每个字符串来去掉空格。
  • 另外你使用的是什么框架?据我所知,http.request() 不是原生 javascript 方法。
  • 对不起,我应该说,我正在使用 ECMAScript 6。修改了标题
  • @Taplar http.request() 是节点。
  • @Iwrestledabearonce。啊啊啊,我们去

标签: javascript node.js arrays loops


【解决方案1】:

这是你所期望的吗?

var tens = "ABC, DEF, GHI"
var letters = tens.split(',').map(string=>string.trim())
const apiCalls = callAPIs(letters) 

function callAPIs(letters) {
  responses = []

  letters.forEach(group => {
    var apiRequest = http.request({
      'endpoint': 'http://xxxxxxxxxxxxxxxxxxxxxxx',
      'path':'/api/v1/table/record', 
      'method': 'POST',
      "headers": {
        "Authorization": "Basic xxxxxxxxxxxxxxxxxxxxxxxxxxx=",
        "Content-Type": "application/json"
      }
    })
    apiRequest.write(group)
    apiRequest.end((data) => {
      responses.push(data)
    })
  })
  
  return responses
}

【讨论】:

  • 太棒了!谢谢
猜你喜欢
  • 1970-01-01
  • 2019-06-16
  • 1970-01-01
  • 1970-01-01
  • 2020-01-18
  • 1970-01-01
  • 1970-01-01
  • 2016-06-05
  • 2017-10-09
相关资源
最近更新 更多