dataArray.map((data) => { var downloadwin = BrowserWindow.getFocusedWindow(); download(downloadwin, data.dowloadLink, { directory: downloadPath, filename: data.title + '.' + data.fileType, saveAs: false, extension: data.fileType, openFolderWhenDone: false, showBadge: true, onStarted: (item) => { mainWindow.webContents.send('starDownload',dataArray); handleDownload.push(item);//存储每个下载 }, onProgress: (progress) => { var processNow = progress.percent * 100; downloadArray.set(data.sUrl, { title: data.title, sUrl: data.sUrl, progress: processNow, size: data.size, }); mainWindow.webContents.send('consolelog', downloadArray) }, onCompleted: () => { isDownload = false; mainWindow.webContents.send('endDownload', isDownload) }, }); }) 这段代码为什么只创建了一个下载,而不是我规定的数组map出来的24个下载
时间: 2024-01-22 22:04:17 浏览: 86
以数据流方式下载文件.
这段代码中的 `download()` 函数是一个异步函数,它会创建一个下载任务并立即返回,所以在 `dataArray.map()` 循环中,会迅速地创建多个下载任务,但是这些下载任务并不是同步进行的,而是并行进行的。因此,你可能看到了只有一个下载任务在运行,因为其他的下载任务可能还没有开始或者已经完成了。如果你想要限制同时进行的下载数,可以使用类似于并发限制的技术,或者使用一个下载队列,以确保只有有限数量的下载任务同时在运行。
阅读全文