Я хочу получить ответ от массива URL-адресов, например:
let arrUlr = [ 'https://my.domain.base/api/v1/people/?auth_token=71bdf0377bc%%$%&count=100&page=1',
'https://my.domain.base/api/v1/people/?auth_token=71bdf0377bc%%$%&count=100&page=2',
'https://my.domain.base/api/v1/people/?auth_token=71bdf0377bc%%$%&count=100&page=3',
'https://my.domain.base/api/v1/people/?auth_token=71bdf0377bc%%$%&count=100&page=4',
'https://my.domain.base/api/v1/people/?auth_token=71bdf0377bc%%$%&count=100&page=5',
'https://my.domain.base/api/v1/people/?auth_token=71bdf0377bc%%$%&count=100&page=6' ]
Объемные данные поступают в виде кусков;моя стратегия iterate arrUlr
в for loop
, но мне нужно отложить время в нем, чтобы предотвратить это:
Сообщение от CloudFlare ( выглядит так, как сервер избегает подачичастые запросы ):
response:
{ status: 429,
statusText: 'Too Many Requests',
headers:
{ date: 'Tue, 04 Jun 2019 22:37:00 GMT',
'transfer-encoding': 'chunked',
connection: 'close',
'set-cookie': [Array],
status: '429 Too Many Requests',
'cache-control': 'no-cache',
'x-ratelimit-limit': '3',
'x-ratelimit-reset': '2019-06-04 22:37:01 UTC',
'x-request-id': '0fa7395b-df8d-4c8a-bc5b-52d0e46c4138',
'x-runtime': '0.001619',
'x-ratelimit-period': '1',
'x-powered-by': 'Phusion Passenger Enterprise',
'expect-ct': 'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
server: 'cloudflare',
'cf-ray': '4e1d63897b2db594-BOG' }, ... ]
Итак, это моя идея:
for(let url of arrUlr){
/*for(let i=0; i < arrUlr.lenght; i++) is a alternative*/
setTimeout( ()=>{
axios.get(url)
.then(res =>{
console.log(res.data) /*whatever it comes*/
})
}, 5000)
}
- Что вы, ребята, рекомендуете для достижения этой цели оптимально?
- Это правильный подход?
- Как получить звонок по порядку с задержкой в 3 секунды?
Большое спасибо.