Skip to content

Commit 2761ff3

Browse files
authored
Schedule next request to get data after previous request finishes (#1352)
1 parent 3aba499 commit 2761ff3

File tree

2 files changed

+15
-7
lines changed

2 files changed

+15
-7
lines changed

.changeset/perfect-tomatoes-press.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"apollo-client-devtools": patch
3+
---
4+
5+
Schedule next request to get client data only after the previous one had finished.

src/extension/devtools/devtools.ts

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -92,20 +92,23 @@ function startRequestInterval(ms = 500) {
9292
let id: NodeJS.Timeout;
9393

9494
async function getClientData() {
95-
if (panelWindow) {
96-
panelWindow.send({
97-
type: "update",
98-
payload: await rpcClient.request("getClientOperations"),
99-
});
95+
try {
96+
if (panelWindow) {
97+
panelWindow.send({
98+
type: "update",
99+
payload: await rpcClient.request("getClientOperations"),
100+
});
101+
}
102+
} finally {
103+
id = setTimeout(getClientData, ms);
100104
}
101105
}
102106

103107
if (devtoolsMachine.state.value === "connected") {
104108
getClientData();
105-
id = setInterval(() => getClientData(), ms);
106109
}
107110

108-
return () => clearInterval(id);
111+
return () => clearTimeout(id);
109112
}
110113

111114
const unsubscribers = new Set<() => void>();

0 commit comments

Comments
 (0)