【发布时间】:2019-07-11 03:08:55
【问题描述】:
我必须延迟检索超过 1000 个 IP 地址。由于我必须使用 ip-api.com /batch,因此该 api 的 post 方法每分钟最多需要 100 个 Json 参数长度。我输入了超过 1000 个 ip 地址的数组,并创建了一个新数组,每个索引都有另一个长度最大为 100 的数组。现在我正在努力对数组上的每个索引进行 http 调用,并等待一分钟,等待下一个新请求指数。
//for example I have two index in groups and each index has other 3
indexes
let groups= [[ { query: '193.206.170.145', fields: 'lat,lon' },
{ query: '37.186.207.50', fields: 'lat,lon' },
{ query: '193.206.170.144', fields: 'lat,lon' },
{ query: '62.18.244.163', fields: 'lat,lon' }],
[ { query: '79.52.35.144', fields: 'lat,lon' },
{ query: '62.18.249.56', fields: 'lat,lon' },
{ query: '176.200.132.147', fields: 'lat,lon' }]]
groups.forEach( el => makeRequest(el));
function makeRequest (array){
let toJson = JSON.stringify(array)
setInterval(function(){
axios.post('http://ip-api.com/batch',toJson)
.then(function (response) {
console.log(response.data);
})
.catch(function (error) {
console.log(error);
});
},60000);
}
Expected:
[{ lat: 45.8, lon: 8.8333 },
{ lat: 45.8155, lon: 8.82753 },
{ lat: 45.8, lon: 8.8333 }]
after one minute
[{ lat: 41.818, lon: 12.4148 },
{ lat: 45.4643, lon: 9.1895 },
{ lat: 45.5324, lon: 9.0402 }]
【问题讨论】:
标签: node.js api asynchronous