Это утечка памяти?
class Leaky {
constructor(options) {
process.on('message', function(msg) {
this.do_something(msg)
// ...
}.bind(this))
}
// ...
}
Когда я вызываю new Leaky()
, ссылка привязывается к экземпляру через обработчик. process
не собирается быть GC'd, поэтому я просто пропустил экземпляр Leaky
?
Как я могу предотвратить это? Единственное решение, которое я могу придумать, - это метод dispose
, который вызывает process.off
, но я бы хотел этого избежать. Я не вижу что-то вроде unref
или слабых обработчиков на EventEmitter
.