User Tools

Site Tools


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