我正在使用Express在NodeJS中做一个大项目,我想知道我是否可以在服务器应用程序内部进行无限循环。我认为这不能用Java之类的其他语言来完成(因为它会拖延应用程序)但我不确定这种情况下的JS行为。
服务器应用程序必须完成两项主要任务。第一个是处理网页(它必须听取请求和类似的东西)。第二个是通过wifi循环通过一组arduinos以获得一些值。这些值将使用socket.io发送到网页。
所以,问题是:服务器是否可以同时执行两项任务?我想象从网页发送到服务器的请求作为将停止循环迭代的事件,一旦它们被回答,循环就会继续。
抱歉我的英语不好。提前谢谢!
答案 0 :(得分:0)
您可以将服务器设置为处理网页,并使用cronjob
触发查询arduinos的函数。
有npm包可让您在javascript代码中定义cronjobs
。其中一个例子是cron
答案 1 :(得分:0)
您可以使用setInterval
和clearInterval
来启动和停止循环。
const interval = setInterval(() => console.log('loop'), 1000);
setTimeout(() => clearInterval(interval), 100000);
其他方法(如果您愿意,可以动态更改间隔):
let counter = 0;
const task = () => {
console.log('loop');
counter++;
setTimeout(() => counter < 10? task() : void 0, 1000);
};
task();