0
내 Angular 4 형식에 대한 canDeactivate 처리기를 만들었습니다. 이 방법이 효과적 일지는 모르겠지만, 나는 (더 나은 용어가 부족하여) 메모리 누수가 발생할 것을 두려워합니다. 구독 정보 목록을 계속 피하기 위해 구독을 취소해야한다고 읽었습니다. 하지만 아래에서 생성하는 구독을 어디서/어떻게 구독 취소할지 잘 모르겠습니다. observer.complete 호출이 구독을 삭제합니까?옵저버에서 구독 삭제
// Allow the user to navigate away from this page
public canDeactivate(): Observable<boolean> {
// Popup a prompt dialog
const title = 'Lose Changes';
const prompt = 'Are you sure you want to lose your changes?';
this.dialogWindow.show(EDialogTypes.EDialogYesNo, EDialogStyles.EDialogStyleWarning, title, prompt);
return Observable.create(observer => {
this.dialogWindow.observable.subscribe(buttonPressed => {
const proceed = (buttonPressed === EButtonPressed.EButtonPressedYes);
console.log('Allow proceed: ' + proceed);
observer.next(proceed);
observer.complete();
});
});
}