Делаю телеграм-бота на Node, суть которого создавать таймеры для пользователей. Пользователь может остановить таймер в любое время. Как сделать, чтобы он мог очистить свой таймер?
Моё решение, как начинающего разработчика. Создал массив, в который при создании таймера складываю объект {user_id, timeout}. А при нажатии пользователем на стоп, делаю clearTimeout для нужного объекта и потом удаляю сам объект из массива.
function clearUserTimeout(user_id) {
const indexOfTimeout = timeouts.findIndex(item => item.user_id === user_id)
if (indexOfTimeout !== -1) {
clearTimeout(timeouts[indexOfTimeout].timeout)
timeouts.splice(indexOfTimeout, 1)
}
}
Как сделать правильно?