Escrito el 01/08/2024
Cómo hacer Subscribe y Unsubscribe
Cuando se llama al método subscribe, normalmente nos devuelve una función para unsubscribe para hacerlo hay que implementarlo así:
export class SubscribleObject {
private subscriptions: Function[] = [];
public subscribe(fn: Function): Function {
this.subscriptions = [...this.subscriptions, fn]; // agregar la subscripción
this.notify(); // notificar los datos actuales
return () => {
this.subscriptions = this.subscriptions.filter((sub) => sub !== fn);
}; // función para desuscribirse
}
private notify() {
const data = this.internalData(); // función que devuelve los datos a los que se subscribieron
this.subscriptions.forEach((fn) => fn(data)); // notifica a todos los subscriptores
}
}
Al menos es una manera de hacerlo.