Estoy tratando de cerrar una ventana emergente después de 5 segundos cuando se carga, pero la suscripción finaliza antes, así que quiero cancelar la suscripción cuando la variable cargada es verdadera.
this.closed = false; this.loaded$.subscribe(loaded => { if (loaded) { setTimeout(() => { this.modalService.dismissActiveModal(); }, 5000); } }).unsubscribe(); }this.closed = false; // define the subscription const subscription: Subscription = this.loaded$.subscribe(loaded => { if (loaded) { setTimeout(() => { this.modalService.dismissActiveModal(); subscription.unsubscribe(); // unsubscribe here }, 5000); } });¿Qué tal esto?
this.closed = false; this.loaded$ .pipe( filter(loaded => loaded), switchMap(_ => interval(5000)), take(1), tap(_ => this.modalService.dismissActiveModal()) ) .subscribe();