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));
}