// 下载器类 class Downloader { constructor(data, options) { this.data = data; this.options = options; this.item = null; this.onStart = null; this.onProgress = null; this.onCompleted = null; this.data.progress = 0; // 新增 progress 属性 this.data.status='pause';//true 表示 进度没有结束,继续下载 this.data.timeid=0; } start() { const win = BrowserWindow.getFocusedWindow(); this.options.onStarted = (item) => { this.item = item; this.data.status='process';//true 表示 进度没有结束,继续下载 this.onStart(); }; this.options.onTotalProgress=(progress)=>{ this.data.progress = progress.percent * 100; // 更新 progress 属性 this.onTotalProgress(progress); } this.options.onCompleted = () => { this.onCompleted(); }; download(win, this.data.dowloadLink, this.options); } pause() { if (this.item) { this.item.pause(); } } resume() { if (this.item) { this.item.resume(); } } cancel() { if (this.item) { this.item.cancel(); } } } 这里面 new的对象中有异步方法,我外面 调用方法出现undefine
时间: 2024-04-28 20:26:40 浏览: 56
raw_data_downloader.zip
你说的是在外部调用 Downloader 对象的方法时出现 undefined 的问题吗?可能是因为异步方法还没有执行完毕,导致某些属性或方法还没有被赋值。你可以尝试在异步方法执行完毕之后再调用对象的方法。例如,在 onStarted 回调函数中设置一个标志位,表示异步方法已经执行完毕,然后在外部调用对象的方法时先判断这个标志位是否已经被设置。
阅读全文