node.js - 循环遍历数组和 POST API 调用
问题描述
我想循环遍历我的数组并每次发布 API 调用,以便为数组中的每个值创建一条新记录。
下面的示例将进行 3 次单独调用并返回 3 条新记录,但我无法让它工作,有人可以建议这是否是最好的方法吗?
var tens = "boo, foo, bar";
var letters = tens.split(',').map(string=>string.trim());
const apiCalls = callAPIs(letters);
function callAPIs(letters) {
responses = [];
letters.forEach(group => {
var apiRequest = http.request({
'endpoint': 'site',
'path':'/api/v1/table/incident',
'method': 'POST',
"headers": {
"Authorization": "Basic xxxxxxxxxxxxx=",
"Content-Type": "application/json"
}
})
apiRequest.write(group)
apiRequest.end((data) => {
responses.push(data)
});
});
return responses
console.log(responses)
}
var data = {};
var caller_id = "user1";
data.caller_id = caller_id;
解决方案
forEach
首先,您需要了解js
不是承诺意识。您必须使用旧学校for
循环或一些可迭代的for...in
async function callAPIs(letters) {
responses = [];
for (const i = 0; i < letters.length; i++) {
var apiRequest = await http.request({
'endpoint': 'site',
'path': '/api/v1/table/incident',
'method': 'POST',
"headers": {
"Authorization": "Basic xxxxxxxxxxxxx=",
"Content-Type": "application/json"
}
})
apiRequest.write(group)
apiRequest.end((data) => {
responses.push(data)
});
});
return responses
console.log(responses)
}
推荐阅读
- java - java中的void重载
- arrays - $lookup 后如何反转 $unwind 或重新组装?
- python - 模块可以为我们提供哪些功能在 python 中不能提供的功能?
- image-processing - 如何在检测到的边界框中找到代表对象的点或点数
- django - django 出现错误:拒绝在框架中显示“http://127.0.0.1:8000/”,因为它将“X-Frame-Options”设置为“拒绝”
- typescript - 打字稿:从联合中删除空值
- javascript - 如何过滤数组中的重复元素而不用lodash删除它们?
- json - 嵌套 sqlitedict 键的问题
- linux - 采购 .sh 脚本使用 . 给出错误的值
- javascript - 单击后导航菜单未使用当前页面链接名称更新