【发布时间】:2018-02-14 05:14:34
【问题描述】:
我正在使用 apollo-angular 构建一个 angular (4.x) 应用程序,我想知道如何取消订阅 apollo observables(如果你需要的话)。
我正在尝试通过创建查询来遵循 this response 中的指导:
this.query = this.apollo.watchQuery<LatestReportQueryResponse>({
fetchPolicy: 'network-only',
query: myQuery
});
分配一个新的主题:
private ngUnsubscribe: Subject<void> = new Subject<void>();
订阅查询:
this.query.takeUntil(this.ngUnsubscribe).subscribe(({ data }) => {...}
然后在 onDestroy 事件循环中销毁所有活动的可观察对象,例如:
ngOnDestroy() {
this.ngUnsubscribe.next();
this.ngUnsubscribe.complete();
}
添加.takeUntil(this.ngUnsubscribe) 后,我遇到如下lint 错误:
“Subject”类型的参数不能分配给“Observable”类型的参数。
或者当我尝试手动取消订阅 ApolloQueryObservable 时,我得到:
“ApolloQueryObservable”类型上不存在属性“取消订阅”。您指的是“订阅”吗?
apollo observables 是否需要取消订阅?
【问题讨论】:
标签: angular rxjs graphql apollo