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

361
Visualizações
¿Cómo me aseguro de haber cancelado la suscripción?

Tengo una suscripción en la que recibo algunos mensajes de la tienda para generar tostadoras.

Cancelé la suscripción mediante subscribe .unsubscribe() .

¿Cómo puedo comprobar que realmente me he dado de baja?

 subscription!: Subscription; ngOnInit(): void { } toastrError(): void { this.subscription = this.store.select(getMessage).subscribe(m => { (m.message && m.title) ? this.toastr.error(m.message, m.title) : null; }); } singIn(): void { this.toastrError(); } ngOnDestroy(): void { this.subscription.unsubscribe(); }
over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Una instancia de componente tiene un ciclo de vida que comienza cuando Angular crea una instancia de la clase de componente y representa la vista del componente (junto con sus vistas secundarias). El ciclo de vida continúa con alguna detección de cambios, ya que Angular verifica cuándo cambian las propiedades vinculadas a los datos y, en respuesta, actualiza tanto la vista como la instancia del componente cuando es necesario. El ciclo de vida finaliza cuando Angular realmente destruye la instancia del componente y elimina su plantilla renderizada del DOM, por lo que se llama a ngOnDestroy inmediatamente antes de que Angular destruya el componente (o directiva).

Si desea asegurarse de que la cancelación de la suscripción realmente se está produciendo, puede agregar un registro en el método ngOnDestroy o depurarlo en el navegador.

over 4 years ago · Santiago Trujillo Relatório

0

Creo que puede usar el indicador closed después de unsubscribe() para validarlo. Como ejemplo

 if(!this.subscription.closed) console.error("Some error unsubscribing ?!");

Si se refiere a validar fuera del componente, entonces probablemente no pueda, ya que se llamará a ngOnDestroy solo antes de la destrucción de la instancia del componente. ¡Puede intentar emitir un evento aquí, pero probablemente llegue tarde para comprobarlo!

Sin embargo, como buena práctica, puede definir un subject en su componente y usarlo para cancelar todas sus suscripciones usando takeUntil() . Como ejemplo

 export class LoginComponent implements OnInit, OnDestroy { private destroy$ = new Subject<void>(); constructor(private http: HttpClient) {} ngOnInit(): void { this.http.get("http://whatever") .pipe(takeUntil(this.destroy$)) .subscribe(value => console.log(value)); } ngOnDestroy(): void { this.destroy$.next(); this.destroy$.complete(); } }

Marque esta pregunta para ver la diferencia entre tales métodos.

Angular RxJS Observable: takeUntil vs. cancelar la suscripción con una suscripción

over 4 years ago · Santiago Trujillo Relatório

0

Supongo que podrías ver que cancelaste la suscripción si no aparecen más mensajes de error. Pero entiendo tu punto. Puede iniciar sesión en el método ngOnDestroy para asegurarse de que se ejecutará y, por lo tanto, cancelar la suscripción.

O podría depurarlo con algo como la demostración que se me ocurrió aquí . Al mostrar/ocultar el componente secundario, puede ver la suscripción que está registrando un mensaje de 'ping', se inicia y se detiene en consecuencia.

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