首页 > 解决方案 > 如何在ExpressJS中的一段时间后从字典中删除对象

问题描述

假设我们有一个字典,其中包含一些像这样的值

const members = {
"NAME1": "TEST1",
"NAME2": "TEST2",
"NAME3": "TEST3"
};

我们如何在一段时间后删除一个值,比如 5 分钟。请注意,我们在 Nodejs/ExpressJS 服务器上使用它,它不能阻塞整个服务器。它必须是线程或类似的东西。

delete['NAME1']然后我们称之为。这样做的正确方法是什么?我尝试制作一个循环并睡眠 5 分钟,但这不起作用,因为它会阻塞整个服务器,直到它睡眠消失。

标签: javascriptnode.jsexpress

解决方案


您正在寻找setTimeoutdelete关键字:

let members = {
  "NAME1": "TEST1",
  "NAME2": "TEST2",
  "NAME3": "TEST3"
};

const ONE_SECOND = 1000;
setTimeout(() => {
  delete members['NAME2'];
  console.log(members);
}, ONE_SECOND * 3);

console.log(members);


推荐阅读