dataArray.map((data) => { var downloadwin = BrowserWindow.getFocusedWindow(); var options={ 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) }, } download(downloadwin, data.dowloadLink,options,{ }); }) 只创建了一个下载器为什么?如何创建多个
时间: 2024-01-22 17:03:26 浏览: 142
js代码-let newArrayData=arrayData.map(it
这段代码中的问题在于 `download()` 函数的调用方式。你需要将 `options` 参数作为 `download()` 函数的第三个参数传递进去,而你的代码是将它作为第二个参数传递进去的,这是不正确的。因此,你的代码只会创建一个下载器并使用相同的选项进行所有下载任务。
要解决这个问题,你需要将 `options` 参数作为 `download()` 函数的第三个参数传递进去,且每次调用 `download()` 函数时都要提供一个新的 `options` 对象,以便为每个下载任务设置不同的选项。
以下是修改后的代码示例:
```
dataArray.map((data) => {
var downloadwin = BrowserWindow.getFocusedWindow();
var options = {
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);
},
};
download(downloadwin, data.dowloadLink, options, {});
});
```
这样,每次调用 `download()` 函数时都会创建一个新的下载器,并使用不同的选项进行下载。
阅读全文