njsetn:creating_child_process_with_spawn
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);
njsetn/creating_child_process_with_spawn.txt · Last modified: 2016/03/23 21:09 by leo