如何在Node JS中循环下载大量文件?

时间:2020-05-05 09:55:38

标签: node.js

我开始使用 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);
    });

enter image description here

解决方案

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();

0 个答案:

没有答案