SignalR ERROR TypeError: Cannot read property 'subscribe' of undefined
SignalR ERROR TypeError: Cannot read property 'subscribe' of undefined
我想订阅但没有工作。
检查我的代码:
服务:
在 ts:
test() { return test }
在订阅中我看到:
Property 'subscribe' does not exist on type 'void'.ts(2339)
有什么问题?
您可以调整您的代码,以便将数据推送到可观察对象。然后你就可以在任何地方订阅阅读了:
服务:
hubMessage$ = new BehaviorSubject({});
public startConnection = () => {
let token: any = JSON.parse(localStorage.getItem("token") || '{}');
this.hubConnection = new signalR.HubConnectionBuilder()
.withUrl('https://api/endpoint',
{ accessTokenFactory: () => token})
.build();
this.hubConnection
.start()
.then(() => console.log('Connection started'))
.catch(err => { console.log('Error while starting connection: ' + err) })
this.hubConnection.on('message', (data) => {
this.hubMessage$.next(data);
});
}
在 ts:
private startHttpRequest = () => {
this.signalRService.hubMessage$.subscribe(
(data: any) => console.log(data)
)
}
您可以使用@eko 的方法,或者使用这样的回调函数:
服务
public addTransferChartDataListener = (callbackFn) => {
return this.hubConnection.on('message', callbackFn);
}
组件
private startHttpRequest = () => {
this.signalRService.addTransferChartDataListener((data: any) => console.log(data));
}
我想订阅但没有工作。
检查我的代码:
服务:
在 ts:
test() { return test }
在订阅中我看到:
Property 'subscribe' does not exist on type 'void'.ts(2339)
有什么问题?
您可以调整您的代码,以便将数据推送到可观察对象。然后你就可以在任何地方订阅阅读了:
服务:
hubMessage$ = new BehaviorSubject({});
public startConnection = () => {
let token: any = JSON.parse(localStorage.getItem("token") || '{}');
this.hubConnection = new signalR.HubConnectionBuilder()
.withUrl('https://api/endpoint',
{ accessTokenFactory: () => token})
.build();
this.hubConnection
.start()
.then(() => console.log('Connection started'))
.catch(err => { console.log('Error while starting connection: ' + err) })
this.hubConnection.on('message', (data) => {
this.hubMessage$.next(data);
});
}
在 ts:
private startHttpRequest = () => {
this.signalRService.hubMessage$.subscribe(
(data: any) => console.log(data)
)
}
您可以使用@eko 的方法,或者使用这样的回调函数:
服务
public addTransferChartDataListener = (callbackFn) => {
return this.hubConnection.on('message', callbackFn);
}
组件
private startHttpRequest = () => {
this.signalRService.addTransferChartDataListener((data: any) => console.log(data));
}