【发布时间】:2018-04-16 20:39:24
【问题描述】:
我正在尝试实现锁定未来,以防止在我的 Angular 5 Web 应用程序中对同一文档进行多次编辑。我在 Angular 服务中创建了集线器和连接,以便在多个组件中重用它。用户登录后,我将创建我的代理和连接,它们是服务中的存储。在 OnInit 内部的每个组件中,我都有一个在“connection.onStatChanged”上运行的代码来调用集线器的锁定命令。因为我将连接存储在服务中,所以在我离开一个组件后,该组件的事件侦听器仍在侦听连接的“onStateChanged”事件。我想清除每个组件的 ngOnDestory 中的回调函数。如果与服务器的连接丢失并且用户将页面更改为另一个页面,事件侦听器仍在运行,并且一旦再次建立连接,它就会尝试锁定该文档!
this.dataService.connection.stateChanged((change) => {
if (change.newState === $.signalR.connectionState.connected) {
this.registerSignalR();
this.dataService.authProxy.invoke('lock', this.authNo, this.userService.userName, this.userService.userId);
}
this.connectionStateChange.next(change.newState);
});
【问题讨论】:
标签: angular callback connection signalr dispose