それで、私は頭の体操について考えていました - 何らかの理由でノード js で反復する必要がある大きなオブジェクトがあり、それを行っている間、イベント ループをブロックしたくない場合はどうすればよいでしょうか?
これは私の頭の一番上にある例です。私はそれがはるかにきれいになると確信しています:
var forin = function(obj,callback){
var keys = Object.keys(obj),
index = 0,
interval = setInterval(function(){
if(index < keys.length){
callback(keys[index],obj[keys[index]],obj);
} else {
clearInterval(interval);
}
index ++;
},0);
}
乱雑になる他の理由があると確信していますが、 setInterval 0 は実際には 0 ミリ秒ごとに実行されるわけではないため、これは通常の for ループよりも遅く実行されますが、多くのループを作成する方法がわかりませんより高速な process.nextTick。
私のテストでは、ネイティブの for ループ (hasOwnProperty() チェックを使用して同じ情報をログに記録) では 4 ミリ秒かかるのに対し、この例の実行には 7 ミリ秒かかることがわかりました。
では、node.js を使用してこの同じコードを記述する最もクリーンで最速の方法は何ですか?