var downloader = new Downloader(dataArray[i], options); downloader.data.timeid=timenow;//存储唯一标识 downloader.start(); downloader.onStart = () => { // 下载开始 handleDownload.push(downloader); mainWindow.webContents.send('consolelog2', '检查代码在此执行次数'); }; 这段代码中,为什么 new Downloader(dataArray[i], options); 执行第一次的时候 downloader.onStart = () => { // 下载开始 handleDownload.push(downloader); mainWindow.webContents.send('consolelog2', '检查代码在此执行次数'); }; 执行一次。 而 new Downloader(dataArray[i], options); 执行第二次的时候。 downloader.onStart = () => { // 下载开始 handleDownload.push(downloader); mainWindow.webContents.send('consolelog2', '检查代码在此执行次数'); }; 执行了两次
时间: 2024-04-28 11:27:06 浏览: 156
根据你提供的代码,我可以看出这是一个下载器的实现,当执行 new Downloader(dataArray[i], options); 时,会创建一个新的 Downloader 对象,并将其存储在变量 downloader 中。然后,通过设置 downloader.onStart 回调函数,将其推入 handleDownload 数组中,并向 mainWindow 发送一条消息。因此,当第一次执行 new Downloader(dataArray[i], options); 时,回调函数只会执行一次。但是,当第二次执行 new Downloader(dataArray[i], options); 时,会创建另一个新的 Downloader 对象,并将其存储在变量 downloader 中。然后,将其设置为回调函数并推入 handleDownload 数组中,再向 mainWindow 发送一条消息。因此,回调函数会执行两次。
阅读全文