Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 5 HttpClient获取请求isn';t关闭_Angular_Typescript_Http_Http Get_Subscribe - Fatal编程技术网

Angular 5 HttpClient获取请求isn';t关闭

Angular 5 HttpClient获取请求isn';t关闭,angular,typescript,http,http-get,subscribe,Angular,Typescript,Http,Http Get,Subscribe,我使用Http GET请求从后端接收一些json 服务: public categories: BehaviorSubject<Category[]> = new BehaviorSubject(null); constructor() { const sub = this.http.get<ResponseInterface>(environment.apiUrl + 'categories') .subscribe(respo

我使用Http GET请求从后端接收一些json

服务:

public categories: BehaviorSubject<Category[]> = new BehaviorSubject(null);           

constructor() {
   const sub = this.http.get<ResponseInterface>(environment.apiUrl +  'categories')
     .subscribe(response => {
        categories.next(response.data)
     }, (error: any) => {
        sub
     }, () => { 
        sub.unsubscribe();
   });
}
开发过程中一切正常(ng serve--aot)

如果我在生产中使用请求,它会减慢我的浏览器速度,因此我必须手动结束脚本才能再次使用浏览器。但令人惊讶的是,我一停止脚本,请求的答案就会出现在“网络”选项卡上


但最恼人的是,这个错误只出现了9/10次。有人见过类似的情况吗?

我可以通过将空数组([])分配给BehaviorSubject而不是null来解决这个问题

public categories: BehaviorSubject<Category[]> = new BehaviorSubject([])
公共类别:BehaviorSubject=新的BehaviorSubject([])
是的,我用ng cli在开发版本和产品版本之间试验了一些问题,您使用的是什么角度版本?尝试改变您的操作方式。在服务中,创建一个只返回可观察内容的函数:返回this.http.get(environment.apirl+“categories”);在组件中调用服务函数并附加.subscribe。不要在服务中使用构造函数,创建function@Kalamarico我用的是Angular 5.2.0。我希望,我必须将其更改为非构造函数解决方案:(
public categories: BehaviorSubject<Category[]> = new BehaviorSubject([])