Javascript: функция чтения fs игнорируется

Я использую 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». В настоящее время я понятия не имею, как решить эту ситуацию, и я борюсь с ней. Сначала я обрабатывал сигнал, но понял, что это невозможно, потому что запись/чтение небезопасны. С этим решением я собираюсь поймать каждую ошибку и запустить эту функцию.

Спасибо, если вы можете помочь мне найти решение

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Другие вопросы по теме