我开始使用 node.js ,但我不理解异步代码。
我要编写一个代码,从链接中下载1k文件。
在我的代码中,我使用了软件包“ node-downloader-helper” 。
并且此软件包可以处理一个或两个文件。
当循环更大时最多下载70个文件,但所有文件均无法正常工作
全部下载不正确。
它是我的代码:
let uniq = [array with 1000 links];
async.forEachOf(uniq, function (value, key, callback) {
const dl = new DownloaderHelper(value, 'E:/XAMPP/htdocs/mydownloads/pdf/',{fileName: key+".pdf"});
dl.on('end', () => console.log('Download Completed'))
dl.start();
}, function (err) {
if (err) console.error(err.message);
});
解决方案
const save = async (link, index) => {
const dl = new DownloaderHelper(link, linkToDirectory)
await dl.start();
}
const forLoop = async _ => {
console.log('Start')
for (let index = 0; index < uniq.length; index++) {
const link = uniq[index]
const response = await save(link, index)
console.log(response)
}
console.log('End')
}
forLoop();