因此,当我将不同的项目加载到屏幕上时,发生了许多HTTP请求。这是基本布局
ngUnsubscribe: any = new Subject();
constructor(private service: Service){}
ngOnInit() {}
BuildView(data) {this.submitLayerservice.submitLayer(onLoadSubmitLayerFormat)
.pipe(takeUntil(this.ngUnsubscribe))
.subscribe( //logic happens here
)
}
ngOnDestroy() {
this.ngUnsubscribe.next();
this.ngUnsubscribe.unsubscribe();
}
一切正常,我看到在销毁组件时所有请求都被取消了。但是当我再次加载项目时,出现此错误,但没有任何显示。我猜这是因为ngUnsubscribe已经发生了?不太确定。与此相关的大多数问题都与Map有关。
编辑: 如果我不添加this.ngUnsubscribe.unsubscribe();该问题似乎已解决。我是否应该取消订阅该主题?
答案 0 :(得分:0)
对于任何寻求此方法的人,最有可能是该问题,因为在您输入组件时不会再次创建“订阅”,因此请添加 ngWillEnter或ngDidEnter
ngUnsubscribe = new Subject();
请确保您在进入视图时创建了订阅。