|<- [[Creating child process with exec]]|[[Listing directory files]] ->|
spawn -> plus pour de l'asynchrone
/alwaysGTalking.js
/spawn.js
//alwaysTalking.js
var phrases = [
'phase 1',
'phase 2',
'phase 3'
];
var interval = setInterval(function(){
var i = Math.floor(Math.random() * phrases.length);
process.stdout.write(`${phrases[i]} \n`);
}, 1000);
process.stdin.on('data', function(data) {
console.log(`STDIN Data Received -> ${data.toString().trim()}`);
clearInterval(interval);
process.exit();
});
// spawn.js
var spawn = require("child_process").spawn;
var child_process = spawn("node", ['alwayStalking']); // arg[O] nom de la commande à éxécuter, arg[1] : liste des arguments à passer à la commande
child_process.on('data', function(){
console.log(`STDOUT: ${data.toString()}`);
});
child_process.on('close', function() {
console.log("Child Process has ended");
process.exit();
});
setTimeout(function() {
child_process.stdin.write("stop"); // on envoie la commande stop au alwaysTalking (ça aurait pu être "yolo" avec le même effet en réalité vu le code d'alwaysTalking).
}, 4000);