Я написал асинхронную функцию, которая должна проверять, возвращает ли заданный URL-адрес '200' из get, и в противном случае ждать несколько секунд, чтобы повторить ограниченное количество раз.Код прекрасно работает, когда я запускаю его на своем компьютере с использованием узла, но когда я передаю его в бэкэнд, он проверяет сайт только один раз, а затем сразу же останавливается при получении ошибки.Что я делаю не так?
async function wait(url,delay=10000,attp=3){
let t0 = new Date(Date.now());
let attempts = 0;
console.log('starting...');
async function check(){
if(attempts<attp){
console.log('ATTEMPTS: ',attempts);
return await request.get(url).on('error',
async function(err){
console.log('ERROR: ',err);
attempts+=1;
return await setTimeout(()=>{check()},delay);
}).on('response',
async function(response){
if(response.statusCode===200){
let t1 = new Date(Date.now());
wixData.insert('pagSeguroTimeStats', { 'time': (t1 - t0) / 1000. });
return '200';
}else{
attempts+=1;
console.log('not 200');
return await setTimeout(()=>{check()},delay);
}
});
}else{
return '404';
}
}
return check();
}