JavaScript Code erroné, pouvez-vous savoir pourquoi cette utilisation de la clé entraînera des bogues?


Exemple

var pipeline = {};
// (...) adding things in pipeline

for(var key in pipeline) {
  fs.stat(pipeline[key].path, function(err, stats) {
    if (err) {
      // clear that one
      delete pipeline[key];
      return;
    }
    // (...)
    pipeline[key].count++;
  });
} 

Le problème est qu'il n'y a qu'une seule instance de la clé var . Tous les rappels partageront la même instance de clé. Au moment où le rappel se déclenchera, la clé aura probablement été incrémentée et ne pointera pas vers l'élément pour lequel nous recevons les statistiques.