Мне нужно знать, когда пользователь решает закрыть документ, в котором он находится, поэтому я нашел на разных сайтах событие «beforeClose».
У меня есть 2 проблемы:
Вот как я сейчас это делаю в своем файле jsx:
main();
function main() {
app.addEventListener("beforeClose", detectClose);
}
function detectClose() {
alert('The document is closed');
}
Заранее спасибо за вашу помощь !



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Не уверен, что понимаю, как это должно работать, но я вижу два варианта. (1) Вы можете проверить, есть ли уже слушатели для того же типа события, и добавить новый слушатель, только если таких слушателей нет:
main();
function main() {
if (if_not_exists('beforeClose')) app.addEventListener('beforeClose', detectClose);
}
function detectClose() {
alert('The document is closed');
}
function if_not_exists(eventType) {
var listeners = app.eventListeners;
var i = listeners.length
while (i--) if (listeners[i].eventType == eventType) return false;
return true;
}
(2) Или вы можете заранее удалить всех слушателей (для данного типа события) с помощью такой функции:
function remove_listeners(eventType) {
var listeners = app.eventListeners;
var i = listeners.length
while (i--) if (listeners[i].eventType == eventType) listeners[i].remove();
}