Оскільки у Javascript 1.7 є об’єкт Iterator , який дозволяє це:
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();
чи є щось подібне в node.js?
Зараз я використовую:
function Iterator(o){
/*var k=[];
for(var i in o){
k.push(i);
}*/
var k=Object.keys(o);
return {
next:function(){
return k.shift();
}
};
}
але це створює багато накладних витрат, зберігаючи всі клавіші об'єкта k
.
createNodeIterator
це для елементів DOM, я навіть не маю DOM;) @ c69: я зберігаю всі дані в keys
об'єкті, і value
він просто встановлений 1
(приблизно 20 Мб в 700k ключів), дійсно, для зараз я просто ігнорую цю «накладну», але я вважаю за краще краще рішення :)