1
別のサービスを使用してWebSocketに接続するAPIServiceがあります。 websocketサービスは、Subject<MessageEvent>
のソケットを返します。次に私のAPIServiceでは、ペイロードに応じて、このSubjectを別の科目に吐きたいと思います。私APIServiceは次のようになります。代わりに私が使用することができますmap
の別のオペレータはスプリット1データに応じて異なる科目に従う
export class APIService {
public sonos: Subject<sonosData>;
public commits: Subject<commitData>;
constructor(wsService: WebsocketService) {
this.sonos = <Subject<sonosData>>wsService
.connect(WEBSOCKET_URL)
.map((response: MessageEvent) => {
let data = JSON.parse(response.data);
if(data.sonos) {
return data.sonos;
}
});
}
}
ありますか?私は、このためのいくつかのsudoのコードを記述する場合には、次のようになります。
export class APIService {
public sonos: Subject<sonosData>;
public commits: Subject<commitData>;
constructor(wsService: WebsocketService) {
wsService
.connect(WEBSOCKET_URL)
.forEach((response: MessageEvent) => {
let data = JSON.parse(response.data);
if(data.sonos) {
this.sonos = data.sonos;
}
if(data.commits) {
this.commits = data.commits;
}
});
}
}
しかし、その後、パブリック変数は文句を言わないそれらを使用して、私のコンポーネントは、それらを購読することができないため、定義されたエラーを引き起こすこと。
ありがとう!それは働いた、onNextメソッドは私のために働かなかった。しかし、次に働く方法はおそらく同じ権利を働かせますか? – trevligheten
うん。 Javascript実装を使用してコードスニペットを作成しました。おそらく、Typescriptは少し異なります。それがあなたのために働いた主なポイント。 –