저는 apollo-angular를 사용하여 각도 (4.x) 응용 프로그램을 구축하고 있으며, apollo observables로부터 구독을 취소하는 방법에 대해 궁금합니다 (꼭 필요한 경우).각도에서 관찰 할 수있는 아폴로 구독을 어떻게 취소합니까?
내가 쿼리 작성하여 this response의 지침을 따르려고 :
private ngUnsubscribe: Subject<void> = new Subject<void>();
쿼리 구독 :
this.query.takeUntil(this.ngUnsubscribe).subscribe(({ data }) => {...}
새로운 주제를 할당
this.query = this.apollo.watchQuery<LatestReportQueryResponse>({
fetchPolicy: 'network-only',
query: myQuery
});
을 onDestroy
이벤트주기에있는 모든 활성 관찰 물을 다음과 같이 파괴합니다. '주제'유형 '관찰 가능한'의 매개 변수에 할당 할 수없는 유형의
인수 :
ngOnDestroy() { this.ngUnsubscribe.next(); this.ngUnsubscribe.complete(); }
는
.takeUntil(this.ngUnsubscribe)
를 추가 한 후, 내가 좋아하는 보풀이 오류로 실행합니다. 내가 수동으로 ApolloQueryObservable에 가입을 취소하려고 할 때
가 아니면, 내가 얻을 :
재산권 '구독 취소는'유형에 'ApolloQueryObservable를'존재하지 않습니다. '구독하기'란 뜻입니까?
apollo observables에는 구독 취소가 필요합니까?
감사합니다! 나는 현재 당신이 기술 한 설정을 가지고있다.하지만 takekei() 이전에 "this.query"를 넘어서 타이프 스크립트가 불평 할 때 : "이 ''ApolloQueryObservable '컨텍스트를 다음에 할당 할 수 없다. 메서드의 'Observable >'타입의 'this'입니다. 관찰 가능 객체가 완료/파괴되었는지 확인하는 방법이 있습니까? –
Tkwon123
죄송합니다. 확인할 수 있는지 확실하지 않습니다. 어쩌면 [ API] (http://dev.apollodata.com/angular2) –