简体   繁体   English

如何在ExpressJS中经过一段时间后从字典中删除对象

[英]How to delete an object from a dictionary after a certain period of time in ExpressJS

Let's suppose we have a dictionary with some values like this假设我们有一个字典,其中有一些像这样的值

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

How would we delete a value after a certain time period , let's say 5 minutes.我们如何在一段时间后删除一个值,比如 5 分钟。 Note that we are using this on an Nodejs/ExpressJS server and it can not block the whole server.请注意,我们在 Nodejs/ExpressJS 服务器上使用它,它不能阻止整个服务器。 It has to be either a thread or something similar.它必须是一个线程或类似的东西。

delete['NAME1'] and then we call this. delete['NAME1']然后我们称之为。 What is the right way to do this?这样做的正确方法是什么? I tried making a loop and sleeping 5 minutes but that doesn't work as it blocks the whole server until it sleep passes away.我尝试制作一个循环并睡眠 5 分钟,但这不起作用,因为它会阻塞整个服务器,直到它睡眠消失。

You're looking for setTimeout and the delete keyword:您正在寻找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);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM