在NodeJS Web服务器中创建一个循环?

时间:2017-07-07 17:03:05

标签: node.js loops express

我正在使用Express在NodeJS中做一个大项目,我想知道我是否可以在服务器应用程序内部进行无限循环。我认为这不能用Java之类的其他语言来完成(因为它会拖延应用程序)但我不确定这种情况下的JS行为。

服务器应用程序必须完成两项主要任务。第一个是处理网页(它必须听取请求和类似的东西)。第二个是通过wifi循环通过一组arduinos以获得一些值。这些值将使用socket.io发送到网页。

所以,问题是:服务器是否可以同时执行两项任务?我想象从网页发送到服务器的请求作为将停止循环迭代的事件,一旦它们被回答,循环就会继续。

抱歉我的英语不好。提前谢谢!

2 个答案:

答案 0 :(得分:0)

您可以将服务器设置为处理网页,并使用cronjob触发查询arduinos的函数。

有npm包可让您在javascript代码中定义cronjobs。其中一个例子是cron

答案 1 :(得分:0)

您可以使用setIntervalclearInterval来启动和停止循环。

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