21xrx.com
2025-03-21 11:49:36 Friday
文章检索 我的文章 写文章
Node.js 延时队列实现
2023-06-24 08:44:57 深夜i     11     0
Node js 延时队列 实现

延时队列是指在队列中添加一个元素后,指定一定的时间后才会被处理。在实际应用中,延时队列可以用来处理一些需要延时执行的任务,比如延时发送短信、延时删除临时文件等。

在 Node.js 中实现延时队列可以使用 setTimeout 函数,这个函数可以指定延时时间和回调函数。将要执行的任务作为一个参数传递给回调函数,在指定的延时时间后,回调函数会被触发执行。

下面是一个简单的 Node.js 延时队列实现:

const taskQueue = [];
function addTask(func, delay) {
 taskQueue.push( delay );
}
function runTask() {
 const currentTask = taskQueue.shift();
 if (currentTask) {
  setTimeout(() => {
   currentTask.func();
   runTask();
  }, currentTask.delay);
 }
}
addTask(() => console.log("task 1"), 1000);
addTask(() => console.log("task 2"), 2000);
addTask(() => console.log("task 3"), 3000);
runTask();

在上面的代码中,我们定义了一个 taskQueue 数组,用来保存要执行的任务。addTask 函数用来添加任务,并指定延时时间。runTask 函数是实际执行任务的函数,每次从 taskQueue 中取出一个任务并执行。

我们可以使用 addTask 函数添加需要延时执行的任务,然后调用 runTask 函数开始执行这些任务。在上面的例子中,我们添加了三个任务,它们分别会在 1 秒、2 秒和 3 秒后被执行。

可以看到,使用 setTimeout 函数来实现延时队列非常简单。Node.js 的定时器提供了非常方便的延时执行功能,可以用来实现各种需求。

  
  

评论区