3
通常,我們可以爲數組和對象循環遍歷屬性/值。但循環阻塞。但是,超時可用於模擬異步循環。 i managed to do it for an array。那被圍繞通過i
-通過javascript中的對象「異步」循環
//do stuff
(function asyncLoop(i){
//do stuff in the current iteration
if(++i < array.length){
setTimeout(function(){asyncLoop(i);}, 1);
} else {
callback();
}
}(0));
//do stuff immediately after, while looping
但這種模式,同時在循環數組,那裏有一個限制只適用。有沒有辦法做到這一點的對象?讓我們只是說對象有50k個鍵來遍歷,這使得它不合理地長。我只是想知道是否有可能在一個對象上使用相同的策略。但是我只想知道是否有可能在對象上使用相同的策略。
但這意味着循環通過對象只是將它們(或引用)放入數組中。 – Joseph 2012-04-18 10:24:58
@Joseph - 是的,人們必須首先將屬性收集到數組中。沒有屬性的異步迭代器。 – jfriend00 2012-04-18 10:25:55
['Object.keys'](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/keys)+ [es5-shim](https://github.com/kriskowal/es5- shim) – katspaugh 2012-04-18 10:29:28