Un autre moyen de travailler avec nodejs de manière asynchrone (en plus des événements) est d'utiliser la fonction timing pour :
var temps_actuel = 0;
var temps_d_attente = 3000;
var interval_d_attente = 500;
var temps_attendu = 0;
console.log('La suite dans 3 secondes');
function write_waiting_percent(p) {
process.stdout.clearLine(); // on vire
process.stdout.cursorTo(0); // la ligne précédente
process.stdout.write(`Attente : ${p} %`);
}
var interval = setInterval(function() {
temps_actuel += interval_d_attente;
temps_attendu = Math.floor((temps_actuel/temps_d_attente)*100);
write_waiting_percent(temps_attendu);
}, interval_d_attente);
setTimeout(function() {
clearInterval(interval);
write_waiting_percent(100);
console.log("\nAh-a !");
}, temps_d_attente);
write_waiting_percent(temps_attendu);