Код неожиданно останавливается на бэкенде моего сайта wix - PullRequest
0 голосов
/ 17 февраля 2019

Я написал асинхронную функцию, которая должна проверять, возвращает ли заданный 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();
}

1 Ответ

0 голосов
/ 17 февраля 2019

Кажется, что есть предел того, сколько времени может запускать бэкэнд-функция.Из Wix Code forum кажется, что ограничение составляет 14 секунд, хотя это не похоже на официальное число от Wix.

...