首页 > 解决方案 > 代码在我的 wix 网站的后端意外停止

问题描述

我写了一个异步函数,它应该检查给定的 url 是否从 get 中返回“200”,否则等待几秒钟再试一次有限的次数。当我使用节点在我的计算机上运行它时,代码工作得很好,但是当我将它传输到后端时,它只检查一次站点,然后在收到错误时立即停止。我究竟做错了什么?

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();
}

标签: javascriptvelo

解决方案


似乎后端函数可以运行多少时间是有限制的。从 Wix 代码论坛看来,限制是 14 秒,尽管这看起来不像来自 Wix 的官方数字。


推荐阅读