ngOnInit() {
this.store.pipe(select(empReducer.getErrorStatus)).subscribe(err => this.Error = err);
this.store.pipe(select(empReducer.getEmpInfo)).subscribe(res=> console.log('test'));
}
控制台为何被多次调用?
我只看到两种可能性:
empReducer.getEmpInfo
发射不止一次。
在您提供的代码中,有一个订阅,但是销毁上没有取消订阅(使用unsubscribe()
或takeUntil
模式)。如果组件被创建,销毁,再次创建(例如,用户转到另一个视图并再次返回),则您将拥有两个或多个活动订阅。
如先前所建议,请检查答复以查看您要订阅的内容。关于订阅,您可以使用此模式来确保在销毁组件时取消所有订阅。希望这可以帮助。
private _subscriptions: Subscription = new Subscription();
public ngOnInit():void {
this._subscriptions.add(
this.store.pipe(select(empReducer.getErrorStatus)).subscribe(err => this.Error = err)
)
);
this._subscriptions.add(
this.store.pipe(select(empReducer.getEmpInfo)).subscribe(res => console.log('test')
)
);
}
public ngOnDestroy(): void {
this._subscriptions.unsubscribe();
}