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