Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

231
Visualizações
¿Cómo suscribirse al emisor de eventos una vez?
// Part of service public someEvent: EventEmitter<number> = new EventEmitter(); .... // Component @Component({ selector: 'some-component', template: `...` }) export class SomeComponent { constructor(public service: Service) { this.service.someEvent.subscribe((x) => { // Do something }); } }

SomeComponent se muestra en / ruta. Cuando navego a una ruta diferente en mi aplicación y vuelvo nuevamente, SomeComponent se suscribirá al evento nuevamente, lo que hará que la devolución de llamada se active dos veces. ¿Cómo suscribirse al evento una vez o cancelar la suscripción al destruir el componente y suscribirse nuevamente?

 // Can't subscribe after. ngOnDestroy() { this.service.someEvent.unsubscribe(); }
over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Una llamada para subscribe devuelve una instancia de Disposable , que tiene un método dispose .

O si está utilizando RxJS 5, se ha cambiado el nombre de dispose para unsubscribe de baja (gracias @EricMartinez).

Y de los documentos de RxJS :

...cuando ya no estamos interesados en recibir los datos a medida que llegan, llamamos a disponer de nuestra suscripción.


Almacene el resultado de su llamada para subscribe y luego elimine la suscripción dentro de ngOnDestroy .

RxJS 5:

 export class SomeComponent implements OnDestroy { constructor(public service: Service) { this.subscription = this.service.someEvent.subscribe((x) => {...}); } ngOnDestroy() { this.subscription.unsubscribe(); } }

RxJS <5:

 export class SomeComponent implements OnDestroy { constructor(public service: Service) { this.subscription = this.service.someEvent.subscribe((x) => {...}); } ngOnDestroy() { this.subscription.dispose(); } }
over 4 years ago · Santiago Trujillo Relatório

0

Puedes hacer algo como esto:

 import { OnDestroy } from '@angular/core'; import { Subscription } from 'rxjs/Rx'; export class SomeComponent implements OnDestroy { private _subscription: Subscription; constructor(public service: Service) { this._subscription = this.service.someEvent.subscribe((x) => { // Do something }); } } ngOnDestroy(){ this._subscription.unsubscribe(); }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda