Saya ingin memiliki keluaran parse Node dari perintah bash yang sedang berlangsung dan melakukan hal-hal dengannya secara paralel dengan eksekusi perintah yang dieksekusi.

Sebagai contoh,

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}`);
    }
  });

Di mana server.sh berada?

yell () {
  echo "bing";
  sleep 1s;
  yell;
}

yell;

Sayangnya, prosesnya macet karena eksekusi menunggu server.sh selesai tetapi tidak pernah selesai. Apakah ada cara untuk memproses output dari server.sh seperti yang terlihat?

0
Coley G 28 Oktober 2019, 17:16

1 menjawab

Jawaban Terbaik

Pendengar acara dapat diikat seperti ini:

child.stdout.on('data', (data) => {
  console.log(data.toString());
});
1
Coley G 28 Oktober 2019, 14:30