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
.
createNodeIterator
là đố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ế value
chỉ đượ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 :)