У меня есть несколько синхронных функций, некоторые из которых не являются моим собственным кодом. Эти функции принимают и выполняют функции обратного вызова по завершении.
Мне нужно дождаться завершения этих обратных вызовов и после этого выйти из приложения. Как я могу добиться этого?
const serverGracefulShutdown = () => {
logger.info('Signal received: Gracefully killing application');
httpServer.close(() => {
logger.info('Apollo server closed');
});
redis.quit(() => {
logger.info('Redis client closed');
});
stopKafkaConsumer(() => {
logger.info('Kafka consumer closed');
});
logger.info('Application closed');
process.exit(0);
};
process.on('SIGINT', serverGracefulShutdown);
process.on('SIGTERM', serverGracefulShutdown);
В приведенном выше коде я хочу обеспечить плавное завершение работы приложения.
Все запущенные файлы останавливаются, а затем я могу вызвать процесс . выход (0) .