В Angular 7 Component я использую takeUntil () RxJS для правильной отмены подписки на наблюдаемые подписки.
- Что происходит, когда в методе
ngOnDestroy
отсутствует this.destroy$.next()
(см. Примерниже)? Будет ли он по-прежнему отменять подписку? - Что произойдет, если в методе
ngOnDestroy
отсутствует this.destroy$.complete()
(см. Пример ниже)? Будет ли он по-прежнему отменять подписку? - Есть ли способ принудительно использовать этот шаблон с помощью takeUntil () для отмены подписки (например, правило tslint, пакет npm)?
@Component({
selector: 'app-flights',
templateUrl: './flights.component.html'
})
export class FlightsComponent implements OnDestroy, OnInit {
private readonly destroy$ = new Subject();
public flights: FlightModel[];
constructor(private readonly flightService: FlightService) { }
ngOnInit() {
this.flightService.getAll()
.pipe(takeUntil(this.destroy$))
.subscribe(flights => this.flights = flights);
}
ngOnDestroy() {
this.destroy$.next();
this.destroy$.complete();
}
}