javascript - 代码在我的 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();
}
解决方案
似乎后端函数可以运行多少时间是有限制的。从 Wix 代码论坛看来,限制是 14 秒,尽管这看起来不像来自 Wix 的官方数字。
推荐阅读
- c - 如何使用C中的strtok将csv中的后续列分配给数组
- java - 无法向 Firebase 中组的所有参与者发送通知消息
- python - 根据逻辑将 Python 3 中的行转换为列,值为 True/False
- javascript - IE 无法识别 Javascript 类并中断
- azure - 逻辑应用 - 将 HTML 符号转换为纯文本
- oauth - 使用 OKTA 和 OAUTH 对我的 REST 应用程序端点的端点进行细粒度访问控制
- string - 如何使用 map[string]*string
- ios - 如何修复:iOS 设备(Elementor)上的“文本不在表单字段中”
- angular - 如何在 Angular 8 中使用本地字体系列?
- html - 如何将Google Form iframe嵌入具有灵活高度的html css(响应式)