NodeJS почему зависает exec при отсутствии вывода?

static cmd(command, args, waitResult = true) {
    return new Promise((resolve, reject) => {
        command = [`"${command.replace('"', '\\"')}"`].concat(args).join(" ")
        exec(command, (error, stdout, stderr) => {
            if (error) reject(stderr);
            resolve(stdout ?? true);
        });
        if (!waitResult) resolve(true);
    });
}


Сия функция обеспечивает выполнение консольных команд из скрипта. Все работает прекрасно, кроме одного нюанса. Когда запускается команда, требующая много времени и ничего не выводящая после завершения, то все зависает, exec бесконечно ждет вывода. Как ему объяснить что не надо ничего ждать в такой ситуации?

P.S. Выполняется команда Genymotion для запуска эмулятора (gmtool admin start <...>)
  • Вопрос задан
  • 190 просмотров
Пригласить эксперта
Ответы на вопрос 1
yarkov
@yarkov
Помог ответ? Отметь решением.
Выполняется команда Genymotion для запуска эмулятора

А эмулятор запускается? Есть ощущение, что команда выполняется, эмулятор запустился и пока он не будет закрыт, то команду не завершена, поэтому и ожидается ответ.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы