Использование on.exit внутри обратного вызова функции exec

#javascript #node.js #exec #exit #child-process

#javascript #node.js #exec #выход #дочерний процесс

Вопрос:

У меня есть код javascript, который запускает exec, что-то вроде

 exec('binary with argument', function(error, stdout,stderr)
{

// Calls a callback function if error is encountered
}
  

Я также хотел бы использовать статус выхода этого двоичного файла для отправки в функцию обратного вызова выше. Обычно это делается так

 child.on("exit", function (code) {
  console.log("exit:", code)
})
  

Как я мог бы интегрировать вышеупомянутую утилиту exit в обработчик ошибок exec, чтобы я мог перехватить код ошибки возврата и передать его функции обратного вызова?

Комментарии:

1. Вы говорите о дочернем процессе nodejs или о чем?

2. Да, верно … дочерний процесс nodejs exec и on.(‘exit’, функция (код))

3. Итак, в чем ваша проблема, объединяющая эти два фрагмента и вызывающая одну и ту же функцию обратного вызова из обоих обработчиков?

4. Когда exec вызывается изначально и возвращает ошибку, я передаю stderr для обратного вызова, определенного пользователем. Я пытался использовать этот код внутри первого фрагмента, но он ничего не возвращает, но возвращает правильный код, если используется снаружи. Как мне изменить второй фрагмент, чтобы он возвращал правильный код при использовании внутри первого фрагмента.

5. Не использовать его внутри первого фрагмента? Почему вы хотите это сделать?

Ответ №1:

Мне нужен статус выхода двоичного файла, чтобы я мог вернуть его обратно к определенному пользователем обратному вызову в первом фрагменте.

Согласно документам, вам не нужно прослушивать exit событие, чтобы сделать это:

Обратный вызов получает аргументы (error, stdout, stderr) . В случае успеха error будет null . При ошибке error будет экземпляр Error и error.code будет кодом выхода дочернего процесса, и error.signal будет установлен сигнал, который завершил процесс.

Комментарии:

1. Большое вам спасибо much..it помогло 🙂