Задать вопрос
@komarevtsev

Как правильно очистить память?

Я написал функцию для реконнекта к каналу ws:
function connect() {
	var ws = new WebSocket('ws://...');

	ws.on('message', function (message) {
		//
	})

	ws.on('close', function () {
		ws.removeAllListeners('message');
		setTimeout(connect, 10000);
	})
}


Хоть обработчик on удаляется - все замыкание все равно остается в памяти. Хотелось бы понять почему
  • Вопрос задан
  • 221 просмотр
Подписаться 1 Оценить 5 комментариев
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
miraage
@miraage
Старый прогер
Попробуйте ws = null; в обработчике close.
Ответ написан
Комментировать
@OVK2015
Остается, потому что connect задействовано в setTimeout.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы