Javascript RxJS-转换“;“对象”;事件到一个";数组";包含所有对象
上下文:Javascript RxJS-转换“;“对象”;事件到一个";数组";包含所有对象,javascript,arrays,websocket,rxjs,Javascript,Arrays,Websocket,Rxjs,上下文: webSocketRequest.onopen = () => { webSocketRequest.send(JSON.stringify(firstMessage)); webSocketRequest.onmessage = (streamEvent) => { return of(streamEvent).pipe( map(event => JSON.parse(event.data)), f
webSocketRequest.onopen = () => {
webSocketRequest.send(JSON.stringify(firstMessage));
webSocketRequest.onmessage = (streamEvent) => {
return of(streamEvent).pipe(
map(event => JSON.parse(event.data)),
filter(message => message.type === 'RECORD'), // Here I filter only for the Object I want
tap(rec => console.log(rec.data.value)) // This returns my desired individual objects
).subscribe();
};
};
我有一个Websocket端点。WS流式传输一组消息
。每个消息
都有一组我想要访问的数据,以便提供可视化
问题:
webSocketRequest.onopen = () => {
webSocketRequest.send(JSON.stringify(firstMessage));
webSocketRequest.onmessage = (streamEvent) => {
return of(streamEvent).pipe(
map(event => JSON.parse(event.data)),
filter(message => message.type === 'RECORD'), // Here I filter only for the Object I want
tap(rec => console.log(rec.data.value)) // This returns my desired individual objects
).subscribe();
};
};
可视化只接受数组
。而WS端点只有对象。我想将单个对象转换为一个对象数组
代码:
webSocketRequest.onopen = () => {
webSocketRequest.send(JSON.stringify(firstMessage));
webSocketRequest.onmessage = (streamEvent) => {
return of(streamEvent).pipe(
map(event => JSON.parse(event.data)),
filter(message => message.type === 'RECORD'), // Here I filter only for the Object I want
tap(rec => console.log(rec.data.value)) // This returns my desired individual objects
).subscribe();
};
};
从那时起,我面临着一堵墙。谁能帮帮我吗?实际上,我想将所有对象转换为一个包含所有对象的数组。谢谢 如果我理解正确,您希望维护一个消息列表,并将通过WebSocket发送的所有新消息附加到此列表中
这允许您将此可观察数据传递给不同的最终消费者,他们将能够在阵列发生变化时使用阵列,而无需重复逻辑非常感谢。我会用非花哨的方式做一些肮脏的工作,然后再绕回来做得更好。非常感谢!!