Чтобы сохранить экземпляры живыми, я начал хранить их на карте:
Код: Выделить всё
//Creating Global Map object to Store notifications so they aren't garbage-collected
let notifications = new Map();
async function handleNotification(event, id) {
try {
const notification = new Notification({
title: "Title",
body: "some message",
silent: false,
urgency: "critical",
timeoutType: "never",
});
notifications.set(id, notification);
notification.on("click", () => {
functionToStopAlarm();
notifications.delete(id);
});
notification.on("close", () => {
functionToStopAlarm();
notifications.delete(id);
});
notification.show();
} catch (error) {
console.log(error);
}
}
Мои вопросы:
- В Electron могут ли объекты Notification, которые были локальными для функции, фактически подвергаться сборке мусора, но все еще видимы, если на них нет ссылок?
Я пытаюсь подтвердить, действительно ли моя первоначальная проблема была связана со сборщиком мусора. - Оказывает ли использование карты JavaScript для хранения экземпляров уведомлений каких-либо существенных последствий для производительности или памяти?
Особенно в отношении риска утечек памяти, если уведомления не удаляются правильно. - Есть ли более подходящий или встроенный способ управления жизненным циклом несколько экземпляров уведомлений в Electron или сохранение их вручную в такой структуре, как Map, это стандартная практика?
Примечание: одновременно может быть несколько уведомлений.
Также: я использовал ИИ, чтобы изменить свой пост, поскольку он основан на мнениях перед этим спасибо.
Подробнее здесь: https://stackoverflow.com/questions/798 ... es-prevent
Мобильная версия