Я новичок в node.js, и, возможно, я что-то делаю неправильно. Существует эта чрезвычайно популярная утилита для рекурсивной копии async npmjs.org/package/ncp.node.js ncp (async recursive copy utility) callback not called
Я пытаюсь запустить его параллельно:
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-месячной версии realease 0.5.0, и до сих пор не сообщалось о проблемах, плюс я новичок в node.js, я просто предполагаю, что я не разбираются в узле.
Я уменьшил свой пример из своего приложения, где использовал ncp в async.map(), где он работает параллельно. Я просто не понимаю, почему он не может работать параллельно? – srgstm
Сделал работу, перейдя на mapSeries. Тем не менее неясно о параллели: ncp - это функция с 200 локами, упакованная как замыкание без определенных глобальных переменных. – srgstm