"use strict"; class DownloadManager { downloadUrl(url) { // Simulador de descarga let progress = 0; let intervalId = setInterval(() => { if (progress >= 10) { clearInterval(intervalId); console.log({ success: true, progress: progress * 10, url }); } else { console.log({ success: false, progress: progress * 10, url }); } progress++; }, 500); } } // Subject let downloadManager = new DownloadManager(); downloadManager.downloadUrl("http://hola.com"); /* { success: false, progress: 0 } { success: false, progress: 10 } { success: false, progress: 20 } { success: false, progress: 30 } { success: false, progress: 40 } { success: false, progress: 50 } { success: false, progress: 60 } { success: false, progress: 70 } { success: false, progress: 80 } { success: false, progress: 90 } { success: true, progress: 100 } */