【发布时间】:2013-05-02 23:26:58
【问题描述】:
async.map(['file1','file2','file3'], fs.stat, function(err, results){
// results is now an array of stats for each file
});
根据documentation,第二个参数是:
iterator(item, callback) - 应用于每个项目的函数 数组。
很好。
迭代器被传递了一个回调(错误,转换),它必须 一旦完成并出现错误(可以为空)和 一个变形的物品。
我认为fs.stat 不符合这一点,我会说这不应该工作。
应该是这样的:
async.map(['file1','file2','file3'],
function (file, complete) {
fs.stat(file, function (err, stat) {
complete(err, stat)
});
}, function(err, results){
// results is now an array of stats for each file
}
);
【问题讨论】:
-
"Afaik fs.stat 不调用
callback(err, stat)"你是什么意思?这正是您在代码中所做的。 -
@SLaks 我的意思是为什么传递 fs.stat 与 async.map 一起工作。我的示例是如何实现相同的行为。
-
那句话没有意义。您的代码完全符合您的要求。
-
他在问为什么第一个例子有效。在第二个中,他写下了他将如何编码(因为他对第一个有效的原因感到困惑)。
标签: node.js asynchronous node-async