Я использую javascript, потому что у меня нет выбора: API, который я использую, находится в javascript и только в javascript. Я вообще не в курсе. Я пытаюсь выполнить функцию выхода, которая хранит данные (список опросов) на случай ошибки перед выходом. Параллельно с этим у меня есть функция инициализации, которая восстанавливает данные.
function quit() {
fs.readFile(pollsName, "utf8", function readFileCallback(err, data) {
// never reach this line
if (err) {
console.info(err);
} else {
obj = JSON.parse(data); //now it an object
obj.poll = polls.map((poll) => poll.serialize);
json = JSON.stringify(obj); //convert it back to json
fs.writeFile(jsonName, json, (e) => {
if (e) throw e;
console.info("Polls saved");
}); // write it back
}
});
exit(1);
}
Как видите, я никогда не вхожу в функцию readFile(). Однако у меня есть другая функция write(), которая правильно сохраняет журналы в аналогичном файле. Имя файла правильное, это файл json с ключом «опрос», который представляет собой пустой список. Пакеты fs и exit импортируются с параметром «require». В настоящее время я понятия не имею, как решить эту ситуацию, и я борюсь с ней. Сначала я обрабатывал сигнал, но понял, что это невозможно, потому что запись/чтение небезопасны. С этим решением я собираюсь поймать каждую ошибку и запустить эту функцию.
Спасибо, если вы можете помочь мне найти решение



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


Вы вызываете readFile, но тут же завершаете программу, используя exit(1). Просто переместите exit(1) в функцию обратного вызова readFileCallback, чтобы ваша программа завершилась после сохранения опросов.