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
.
createNodeIterator
soit pour les éléments DOM, je n'ai même pas de DOM;) @ c69: je stocke toutes les données dans le keys
de l'objet et le value
est 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 :)