Ich habe eine Funktion zum vorzeitigen Löschen von Objekten geschrieben.der richtige Weg, um ein Objekt in einem Array für node.js zu löschen?
function add(variable, expireSecond){
this.list[variable] = {"expireSecond": expireSecond, "addTime": (new Date().getTime())/1000};
}
function deleteExpiredObject(){
var currentTime = (new Date().getTime())/1000;
for (var key in this.list) {
var item = this.list[key];
if (item.expireSecond + item.addTime < currentTime){
delete this.list[key];
}
}
}
Wenn ich es verwenden, habe ich versucht, Folgendes zu tun:
add(xxx[1], 300);
Aber wenn ich deleteExpiredObject()
genannt, so scheint es, dass der Speicher nicht frei ist, nachdem das Objekt abgelaufen ist. Liegt es an der Nicht-Null-Referenz des Objekts in xxx[1]
? Wie löst man? Gibt es eine Bibliothek, die ich benutzen kann?
Danke!
Ich nehme an, 'this.list' ist ein Objekt? Es scheint, dass Sie die Elemente mit einer Datenstruktur verfolgen und dann nur die Struktur für die Verfolgung löschen. Wahrscheinlich wollen Sie diese Schnittstelle 'set (Name, Wert, Ablaufzeit), var Wert = get (name)'. –