downloader.onProgress = (progress) => { // 更新下载进度 downloadArray.set(downloader.data.timeid, { title: downloader.data.title, sUrl: downloader.data.sUrl, progress: downloader.data.progress, size: downloader.data.size, status:downloader.data.status, timeid:downloader.data.timeid }); mainWindow.webContents.send('donwloadStatus', true); mainWindow.webContents.send('consolelog', downloadArray); }; 这个 map 中, process 并没有安装 set 的key 赋值,打个比方。里面有三个键值,此时 键值A 的 process 把 B、C 给覆盖了,没有安装键去赋值
时间: 2024-02-05 13:03:03 浏览: 62
Rule34 Downloader:从 http://www.rule34.xxx 下载标记图像-开源
5星 · 资源好评率100%
是的,你说的很正确。在这段代码中,下载进度的更新以及下载状态的存储是通过一个名为 `downloadArray` 的 Map 对象来实现的。这个 Map 对象的键是下载任务的 `timeid`,值是一个包含下载任务信息的对象,其中包括 `title`、`sUrl`、`progress`、`size`、`status` 和 `timeid` 等属性。
在该代码段中,`set` 方法用于为指定的键设置值。如果当前 Map 对象中已经存在这个键,则会更新该键对应的值。如果不存在这个键,则会新建一个键,并将其对应的值设置为指定的值。因此,如果键值 A 的 `process` 把 B、C 给覆盖了,那么这两个值就会丢失,因为在 `set` 方法中并没有为这两个键设置对应的值。
阅读全文