2
我是新来的node.js,也许我做错了什么。 这是非常流行的异步递归复制实用程序npmjs.org/package/ncp。node.js ncp(异步递归拷贝实用程序)回调不叫
我试图在并行运行它:
var ncp = require('ncp').ncp;
var dirs = [
['test/from/1', 'test/to/1'],
['test/from/2', 'test/to/2'],
['test/from/3', 'test/to/3']
];
var copyDirAsync = function (dir) {
ncp(dir[0], dir[1], function (err) {
console.log('done: ' + dir[1]);
});
}
for (var i = 0; i < dirs.length; ++i) {
copyDirAsync(dirs[i]);
}
因此,所有迪尔斯复制就好了。但是,我只获得一个随机目录打印的console.log消息。另外两个没有到达。该计划刚刚存在。如果我添加一个15秒的超时,以便节点继续运行一段时间,则回调也不会到达。我认为这是ncp的一个问题,但是每天下载30K的1个月大的release 0.5.0,到目前为止还没有报道任何问题,加上我是node.js的新手,我只会假设我不明白关于节点的东西。
我从我的应用程序中减少了我的例子,在async.map()中它使用ncp并行运行。我只是不明白为什么它不能平行运行? – srgstm
通过更改为mapSeries使其工作。仍然并不清楚并行:ncp是一个200-loc函数,封装为没有定义全局变量的闭包。 – srgstm