Node.js · Senior · Запитання 5 з 75

Чому замикання може несподівано утримувати пам'ять?

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

Пояснення

Справжній баг - слухач, якого ніколи не видаляють. Також V8 може тримати змінні спільного контексту. Видаляйте слухачів, використовуйте once і не захоплюйте великі об'єкти.

Де почитати

Помилка в запитанні

Node.js · Senior · запитання 5

Перевірте себе

Пройдіть тест Node.js · Senior: запитання й варіанти перемішуються, а наприкінці - розбір помилок.

Пройти цей тест