State Management · Senior · Frage 51 von 75
Wie schiebt man WebSocket-Updates in einen Cache-Eintrag von RTK Query?
async onCacheEntryAdded(arg, { updateCachedData, cacheDataLoaded, cacheEntryRemoved }) {
await cacheDataLoaded;
const ws = new WebSocket(url);
ws.onmessage = (e) => updateCachedData((draft) => { draft.push(JSON.parse(e.data)); });
await cacheEntryRemoved;
ws.close();
}- 1Mit
onCacheEntryAddedundupdateCachedData - 2Den Endpunkt alle 100 Millisekunden abfragen
- 3Aus
ws.onmessageeine Slice-Action senden und Daten von Hand kopieren
Antwort zeigen
Richtige Antwort: Mit onCacheEntryAdded und updateCachedData
Erklärung
Der Socket lebt genau so lange, wie irgendeine Komponente diesen Cache-Eintrag abonniert, und Updates laufen wie andere Cache-Updates über Immer-Drafts.