Quiero obtener todo el progreso y las actualizaciones del bucle de este método de objeto. He usado eventEmitter para emitir un mensaje y luego captar esa señal con .on así:
let response= site_ob.getAllProducts(); response.on(('gotit'),(data)=>{ console.log("data"); });Pero muestra que response.on no es una función.
A continuación se muestra un método de una clase:
async getAllProducts(){ const eventEmitter=new EventEmitter(); let ended=false,products_array = [],count=0,promises_array = []; let total_products_num=this.getTotalProductNumbers(); for(let i=0;i<=150;i+=50) { let products_data= await this.getProducts(i, 50); products_array.push(products_data); eventEmitter.emit('gotit', products_data); } return products_array; }¿O puedo usar tubería o flujo para hacer esto?
Debe hacer que su clase extienda eventemitter y luego llame a this.emit() en getAllProducts. Tal como está, llame a la función on en una matriz cuando devuelva su products_array
class MyProductClass extends EventEmitter { constructor() { super(); } async getAllProducts(){ let ended=false,products_array = [],count=0,promises_array = []; let total_products_num=this.getTotalProductNumbers(); for(let i=0;i<=150;i+=50) { let products_data = await this.getProducts(i, 50); products_array.push(products_data); } this.emit('gotit', products_data); } }Entonces llámalo así
let response; site_ob.on( 'gotit', ( data ) => { response = data; console.log(response); } site_ob.getAllProducts();