通常、配列とオブジェクトの両方に対してループを実行して、プロパティ/値を反復処理できます。しかし、ループはブロックしています。ただし、タイムアウトを使用して非同期ループをシミュレートできます。私は配列のためにそれを行うことができました。
//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
ただし、このモデルは、リミッターがある配列でループしている間のみ機能しi
ます。これは渡されます。オブジェクトに対してこれを行う方法はありますか? オブジェクトが 5 万個のキーを繰り返し処理する必要があり、不当に長くなってしまうとしましょう。
私はすでにこれsetImmediate
(afaik、新しいIEのみ)とWebWorkers(IEにはまだありません)を知っていますが、オブジェクトに対して同じ戦略を使用できるかどうかを知りたいだけです。