【发布时间】:2017-10-06 10:09:37
【问题描述】:
让我们举个例子,我有一个巨大的数组,其中的元素是字符串化的 JSON。我想遍历这个数组并使用 JSON.parse 将所有字符串转换为 JSON(这会阻止事件循环)。
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尽管有这个名字,但不会进行任何异步操作。它只是一个编排已经异步任务的工具。
标签: javascript json node.js asynchronous event-loop