В моем скрипте узла я жду, когда пользователь в какой-то момент нажмет ввод:
console.log("Press enter to continue...");
await new Promise(function(resolve, reject) {
process.stdin.once("data", function(data) {
resolve();
});
});
Сценарий работает нормально и продолжается только после нажатия пользователем клавиши ввода.
Но в конце выполнения процесс не прекращается.
Вместо этого он, кажется, просто ожидает ввода пользователя (то есть каждый раз, когда я нажимаю клавишу ввода, печатается новая строка).
Я почти уверен, что проблема связана с process.stdin.once
, а не с тем, как я использую Promise
для принудительного синхронного выполнения.
У меня есть несколько мест в моем скрипте, где я должен ждать, пока пользователь нажмет ввод, поэтому добавление process.stdin.end()
перед разрешением обещания здесь не может быть и речи (это означает, что ожидание нажатия пользователем ввода будет работать только один раз).
Кто-нибудь знает, как я могу решить эту проблему?
Спасибо!