Hey ! Je rencontre un problème avec mon code...

Code

var fs = require('fs');

function start(name){
fs.writeFile('timerdata/' + name + '_timer.json', '1', function (err) {
    var timer = setInterval(function() { count(name); },1000);
  }); 
}

function get(name){
    fs.readFile('timerdata/' + name + '_timer.json', 'utf8',function(err, data) {
        var message = 'Vous êtes à ' + data + ' secondes !'
        return message;
    });
}

function count(name){
    fs.readFile('timerdata/' + name + '_timer.json', 'utf8',function(err, data) {
        var data = parseInt(data)
        var num = data + 1
        fs.writeFile('timerdata/' + name + '_timer.json', num, function (err) {
            console.log(name + ' : ' + num)
        }); 
    });
}

Problème

En effet, je cherche à faire une chrono qui stock la valeur actuel (ca marche). En revanche, je souhaite pouvoir via la fonction stop arreter le chrono de la personne choisie. Sauf que je n'y arrive pas. J'ai essayer :

clearInterval(x);

Sauf que si plusieur chrono sont lancer en même temps il stoppera tout !

Merci d'avance !

2 réponses


Shizey
Auteur
Réponse acceptée

Hey ! J'ai finalement (avec l'aide d'autre post de forum) à résoudre mon problème, j'ai mis ma variable en tant que Array afin de stocker les personnes dont le chrono est lancé afin d'arrêter le chrono que pour une personne ce qui donne :

var fs = require('fs');
var intervalHandles = {};

function start(name){
fs.writeFile('timerdata/' + name + '_timer.json', '1', function (err) {
  intervalHandles[name] = setInterval(function() { count(name); }, 1000);
  }); 
}

function stop(name){    
          clearInterval(intervalHandles[name]);
          delete intervalHandles[name];
            console.log('Arret du timer de : ' + name)
}

function get(name){
    fs.readFile('timerdata/' + name + '_timer.json', 'utf8',function(err, data) {
        var message = 'Vous êtes à ' + data + ' secondes !'
        return message;
    });
}

function count(name){
    fs.readFile('timerdata/' + name + '_timer.json', 'utf8',function(err, data) {
        var data = parseInt(data)
        var num = data + 1
        fs.writeFile('timerdata/' + name + '_timer.json', num, function (err) {
            console.log(name + ' : ' + num)
        }); 
    });
}

Désolé, je ne peux pas t'aider.... cependant, je tiens juste à te dire que tu as sans le vouloir résolu un problème que j'avais (je devais faire une capture du temps)