Node.js · Senior · Frage 5 von 75

Warum kann eine Closure unerwartet Speicher festhalten?

function handler(req) {
  const hugeBody = req.body; // 50 MB
  const id = hugeBody.id;
  emitter.on("done", () => console.log(id));
}
Antwort zeigen

Richtige Antwort: Ein langlebiger Listener hält den Scope seiner Closure am Leben

Erklärung

Der eigentliche Bug ist der Listener, der nie entfernt wird. V8 kann außerdem Variablen eines geteilten Kontexts am Leben halten. Entferne Listener, nutze once und fange keine großen Objekte ein.

Zum Weiterlesen

Fehler in der Frage

Node.js · Senior · Frage 5

Teste dich selbst

Mach den Test Node.js · Senior: Fragen und Antworten werden gemischt, und am Ende wartet eine Übersicht der Fehler.

Diesen Test machen