Angular: ¿cuál es la forma preferida de terminar los Observables?
Según tengo entendido, Angular y RxJs hay dos formas de terminar los Observables. Usted puedeunsubscribe()
de ellos o usartakeUntil()
ycomplete()
. A continuación se muestran ejemplos de cada enfoque (en pseudocódigo).
El enfoque unsubscribe ()
private _id: number;
private _subscriptions: Subscription[] = [];
constructor(private _route: ActivatedRoute) {
this._getId();
}
public ngOnDestroy(): void {
this._subscriptions.forEach(
subscription => subscription.unsubscribe()
);
}
private _getId(): void {
this._subscriptions.push(
this._route.params.subscribe(params => this._id = +params['id'])
);
}
El enfoque takeUntil () y complete ()
private _id: number;
private _ngUnsubscribe: Subject<void> = new Subject<void>();
constructor(private _route: ActivatedRoute) {
this._getId();
}
public ngOnDestroy(): void {
this._ngUnsubscribe.next();
this._ngUnsubscribe.complete();
}
private _getId(): void {
this._route.params.takeUntil(this._ngUnsubscribe).subscribe(
params => this._id = +params['id']
);
}
En Angular, ¿hay una forma preferida de terminar Observables?