代码在我的 Wix 网站后端意外停止
Code halts unexpectedly on backend of my wix site
我写了一个异步函数,它应该检查给定的 url returns 是否是来自 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();
}
似乎后端函数可以使用多少时间是有限制的运行。从 Wix 代码 forum 看,限制似乎是 14 秒,虽然这看起来不像 Wix 的官方数字。
14 秒限制仅适用于网络功能。
时间
Wix 允许从前端调用的 Web 模块、HTTP 函数和路由器挂钩到 运行 最多 14 秒。此限制适用于免费和付费网站。这些方法中的任何一个花费超过 14 秒的时间都会收到 504 响应代码。请注意,14 秒后代码可能仍会执行,但与客户端的连接已关闭,因此结果不会出现在前端。此错误消息出现在您的日志中:
/backend/.js(w)/超时,因为超过最大执行时间
我有一个刚刚停止的 .js 函数,我没有收到任何错误或任何信息。
我写了一个异步函数,它应该检查给定的 url returns 是否是来自 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();
}
似乎后端函数可以使用多少时间是有限制的运行。从 Wix 代码 forum 看,限制似乎是 14 秒,虽然这看起来不像 Wix 的官方数字。
14 秒限制仅适用于网络功能。
时间 Wix 允许从前端调用的 Web 模块、HTTP 函数和路由器挂钩到 运行 最多 14 秒。此限制适用于免费和付费网站。这些方法中的任何一个花费超过 14 秒的时间都会收到 504 响应代码。请注意,14 秒后代码可能仍会执行,但与客户端的连接已关闭,因此结果不会出现在前端。此错误消息出现在您的日志中: /backend/.js(w)/超时,因为超过最大执行时间
我有一个刚刚停止的 .js 函数,我没有收到任何错误或任何信息。