【发布时间】:2020-09-03 10:00:44
【问题描述】:
我想实现一个元素可以过期和被删除的集合。因为我对 Javascript 的经验很少,所以我找不到最好的方法。在另一种语言中,我会使用一个线程来遍历集合以清除过期元素。但在 Javascript 中这是不可能的,除了使用 setInterval 函数之外,我想不出解决方案。所以每次插入一个元素时都会注册一个回调函数,以便以后清理该元素。
class Collection {
constructor() {
this.items = new Map()
}
put(key, value, expireIn) {
this.items.set(key, value)
setInterval(() => {
this.items.delete(key)
}, expireIn)
}
get(key) {
return this.items.get(key)
}
}
您认为这种方法会有一些限制吗?例如,可以多次拨打setInterval 吗?有没有其他的实现方式?
【问题讨论】:
-
使用
setTimeout(),而不是setInterval()作为一次性计时器。
标签: javascript node.js collections