Depuis Javascript 1.7, il existe un objet Iterator , qui permet ceci:
var a={a:1,b:2,c:3};
var it=Iterator(a);
function iterate(){
try {
console.log(it.next());
setTimeout(iterate,1000);
}catch (err if err instanceof StopIteration) {
console.log("End of record.\n");
} catch (err) {
console.log("Unknown error: " + err.description + "\n");
}
}
iterate();
y a-t-il quelque chose comme ça dans node.js?
En ce moment, j'utilise:
function Iterator(o){
/*var k=[];
for(var i in o){
k.push(i);
}*/
var k=Object.keys(o);
return {
next:function(){
return k.shift();
}
};
}
mais cela produit beaucoup de surcharge en stockant toutes les clés d'objet dans k.
createNodeIteratorsoit pour les éléments DOM, je n'ai même pas de DOM;) @ c69: je stocke toutes les données dans le keysde l'objet et le valueest juste réglé sur 1(environ 20 Mo dans 700k clés), en effet, pour maintenant, j'ignore simplement cette «surcharge», mais je préférerais une meilleure solution :)