fix(traffic): загружать данные потоков последовательно

This commit is contained in:
Denozordec committed 2026-11-04 23:51:03 +07:00
1 parent b4d2d4bc20
commit 3d5b7f0ea6
1 file changed
+9 -6
+9 -6
View File
@@ -924,18 +924,21 @@ export default function TrafficPage() {
}) })
return () => { cancelled = true } return () => { cancelled = true }
} }
void Promise.all([ const loadFlowCards = async () => {
getTrafficFlows(backendUrl, range), // These reads share the collector's constrained admission budget.
getFlowExporters(backendUrl, range), const stats = await getTrafficFlows(backendUrl, range)
getFlowClients(backendUrl, range), if (cancelled) return
]).then(([stats, exporters, clients]) => { const exporters = await getFlowExporters(backendUrl, range)
if (cancelled) return
const clients = await getFlowClients(backendUrl, range)
if (cancelled) return if (cancelled) return
setFlowResult({ key: flowKey, receivedAt: Date.now(), stats, exporters: exporters.exporters, clients: clients.clients }) setFlowResult({ key: flowKey, receivedAt: Date.now(), stats, exporters: exporters.exporters, clients: clients.clients })
setSelectedId(prev => { setSelectedId(prev => {
const list = flowScope === "users" ? clients.clients : exporters.exporters const list = flowScope === "users" ? clients.clients : exporters.exporters
return list.some(x => x.id === prev) ? prev : (list[0]?.id ?? "") return list.some(x => x.id === prev) ? prev : (list[0]?.id ?? "")
}) })
}).catch(e => { }
void loadFlowCards().catch(e => {
if (!cancelled) setFlowResult({ key: flowKey, error: e instanceof Error ? e.message : "Не удалось загрузить потоки" }) if (!cancelled) setFlowResult({ key: flowKey, error: e instanceof Error ? e.message : "Не удалось загрузить потоки" })
}) })
return () => { cancelled = true } return () => { cancelled = true }