Как закрыть и экземпляр repl.start () в узле cli - PullRequest
0 голосов
/ 20 октября 2018

Как закрыть экземпляр repl в модуле cli узла, чтобы он мог запустить его дважды, не дублируя ввод данных пользователем?

// Start repl instance and prompt user
var repl = require("repl");
let replServer = repl.start();

Если я запускаю этот модуль дважды, когда пользователь вводит 'a', Cli показывает 'aa'

Используя readline, я использовал rl.close () для предотвращения дублирования ввода:

// Start readline instance
var rl= readline.createInterface({
   input: process.stdin,
   output: process.stdout
});

// Prompt user for input
rl.prompt();

// Close readline
rl.close()  // this prevents input being duplicated if I run module twice

1 Ответ

0 голосов
/ 21 октября 2018

Чтобы закрыть repl:

replServer.close()

Проблема, с которой я столкнулся, заключается в том, что она закрылась из приложения узла, хотя я вызвал модуль, содержащий readline.prompt ().

Чтобы удалось заставить его работать, вызывая следующий модуль через 'on exit', а не напрямую.

replServer.on('exit', () => {
  anotherModule()
}
...