Vì Javascript 1.7 có một đối tượng Iterator , cho phép điều này:
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();
Có cái gì đó như thế này trong node.js?
Ngay bây giờ tôi đang sử dụng:
function Iterator(o){
/*var k=[];
for(var i in o){
k.push(i);
}*/
var k=Object.keys(o);
return {
next:function(){
return k.shift();
}
};
}
nhưng điều đó tạo ra rất nhiều chi phí bằng cách lưu trữ tất cả các khóa đối tượng k.
createNodeIteratorlà đối với các phần tử DOM, tôi thậm chí không có DOM;) @ c69: Tôi lưu trữ tất cả dữ liệu trong keysđối tượng và thực tế valuechỉ được đặt thành 1(khoảng 20 MB trong 700k khóa), thực sự, cho bây giờ tôi chỉ bỏ qua 'chi phí' này, nhưng tôi thích một giải pháp tốt hơn :)