【发布时间】:2019-08-06 12:59:00
【问题描述】:
我正在从 api(在服务文件中)获取数据,并且正在订阅 ts 文件。我没有使用 rxjs(可观察和订阅)。我对是否需要取消订阅感到困惑在 Angular 7 中使用 rxjs。如果需要取消订阅,那么如果不使用 rxjs,我们该怎么做
// ts
export class ViewDataComponent implements OnInit {
regions: Region[];
dataSource: MatTableDataSource<PaginatedMapData>;
constructor(private ApiServiceObj: ApiService ) {}
ngOnInit() {
this.ApiServiceObj.getLocationData().subscribe((res) => {
this.regions = res;
console.log(res);
});
this.ApiServiceObj.getMarkerDataForTableView(this.startdate, this.enddate, this.regionOption, 0, 10)
.subscribe((res) => {
this.dataSource = new MatTableDataSource(res['results']);
});
}
}
【问题讨论】:
-
但是你正在使用 rxjs。
-
是的,您应该退订
-
当前的“最佳做法”是始终取消订阅。正如下面的答案所述,它并不总是必需,但最好总是拥有它。