Я хотел бы, чтобы Node анализировал выходные данные текущей команды bash и делал с ними что-то параллельно с выполнением выполненной команды.
Например,
const { exec } = require('child_process');
const child = exec('bash server.sh',
(error, stdout, stderr) => {
console.log(`stdout: ${stdout}`);
console.log(`stderr: ${stderr}`);
if (error !== null) {
console.log(`exec error: ${error}`);
}
});
Где server.sh
yell () {
echo "bing";
sleep 1s;
yell;
}
yell;
К сожалению, процесс зависает, поскольку выполнение ожидает завершения server.sh, но этого не происходит. Есть ли способ обработать вывод server.sh так, как он появляется?
0
Coley G
28 Окт 2019 в 17:16
1 ответ
Лучший ответ
Слушатель событий может быть привязан так:
child.stdout.on('data', (data) => {
console.log(data.toString());
});
1
Coley G
28 Окт 2019 в 17:30
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Обратите внимание, что JavaScript — это НЕ Java. Включите все теги, относящиеся к вашему вопросу: например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [стройный] и т. д.
child
, чтобы это выполнялось в первую очередь.