if (nickname) {
(async () => {
deleteUsername(socket.id);
})();
nickname = null;
}
})}):
export async function deleteUsername(socket) {
try {
const response = await fs.readFile("./db.json");
const data = JSON.parse(response);
const value = data.names.filter((user) => user.socketId !== socket);
const newdata = { names: value };
fs.writeFile("./db.json", JSON.stringify({ ...data, ...newdata }));
console.log("user disconnected(deleted)");
} catch (err) {
return(err)
}
}
функция которая удаляет юзера когда отваливается сокет
она отрабатывает все время и я вижу в консоли console.log("user disconnected(deleted)
но иногда юзер остается в базе... почему?
гонки происходят, между двумя обработчиками
и мне получается какой-то луп надо сделать? чтобы в стак добавлять действия, есть примеры как реализовать?
Обсуждают сегодня