Задать вопрос
@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 удаляется - все замыкание все равно остается в памяти. Хотелось бы понять почему
  • Вопрос задан
  • 218 просмотров
Подписаться 1 Оценить 5 комментариев
Пригласить эксперта
Ответы на вопрос 2
miraage
@miraage
Старый прогер
Попробуйте ws = null; в обработчике close.
Ответ написан
Комментировать
@OVK2015
Остается, потому что connect задействовано в setTimeout.
Ответ написан
Ваш ответ на вопрос

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

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