讓我們舉一個例子,其中我有一個巨大的數組,其元素被字符串化爲JSON。我想遍歷這個數組,並使用JSON.parse將所有字符串轉換爲JSON(這會阻止事件循環)。NodeJS:用於阻止作業的異步映射
var arr = ["{...}", "{...}", ... ] //input array
這裏是第一種方法(可保持阻塞一段時間事件循環):
var newArr = arr.map(function(val){
try{
var obj = JSON.parse(val);
return obj;
}
catch(err){return {};}
});
第二種方法是使用async.map
方法(這將是更有效的相比,第一種方法? ):
var newArr = [];
async.map(arr,
function(val, done){
try{
var obj = JSON.parse(val);
done(null, obj);
}
catch(err){done(null, {});}
},
function(err, results){
if(!err)
newArr = results;
}
);
如果第二種方法相同或幾乎相同,那麼在node.js中這樣做的有效方式是什麼?
我碰到child processes,這會是一個很好的方法來解決這個問題嗎?
「與第一種方法相比,這會有所改進嗎?」改進什麼?你想達到什麼目的? –
效率是我猜想的更好的詞。用相同的編輯。 –
儘管名稱不同,async並不會產生任何異步。它完全是一個編制*已經異步*任務的工具。 – Bergi