【发布时间】:2020-08-20 04:59:01
【问题描述】:
在我的 nodejs 应用程序中,我有一个包含以下内容的文件:
index.js 内容:
var app = require('express')();
var http = require('http').Server(app);
function start(){
var timer = setTimeout(function(){
check();
clearTimeout(timer);
}, 60000); // 1 minutes
}
function check(){
// my custom codes....
console.log('checked');
start(); //return again to start
}
start();
http.listen(3008, function(){
console.log('listening on *:' + 3008);
});
最多每 60 秒检查一次我的check 函数。
此代码有效,但有一个问题,例如,当我的应用程序中有 5 个用户在线时,我在控制台中看到 check 函数在 60 秒后重复!
//First 60 seconds
checked
//Second 60 seconds
checked
checked
//third 60 seconds
checked
checked
checked
checked
// check function repated again in each 60 seconds !
我尝试了几种方法,但都不起作用。
【问题讨论】:
-
我将此文件用作我网站的 api。此功能每 60 秒检查一次我的用户付款,但请求在接下来的 60 秒内重复。
-
面对,我需要每 60 秒检查一次功能
-
我知道,没有人能帮我解决这个问题。你知道我比别人有什么优势吗?通过我自己的努力,我可以准确地,在允许的范围内,去追求它。我不记得曾经留下任何未完成的项目。这就是为什么我总是有我的客户。你很少能看到的东西。我会每天变得更强大。
-
这是因为在 setTimeout 函数中使用时,您的计时器引用未绑定到创建它的闭包:stackoverflow.com/questions/36209784/…
-
感谢朋友,我以这种方式进行测试,但不适用于我的情况。谢谢,我从不记得它是什么东西,我做不到。我很想成为我做不到的东西,但无论如何我都会去做,质量标准是我的首要任务。无论如何,我会尝试修复。
标签: javascript node.js express timeout