From 5e6c6fccc482283bfd0fc369557ffab6cf8617bd Mon Sep 17 00:00:00 2001 From: Outvi V Date: Sat, 31 May 2025 10:09:46 +0800 Subject: [PATCH] chore: lint --- .../src/components/page/page.note.vue | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/packages/frontend/src/components/page/page.note.vue b/packages/frontend/src/components/page/page.note.vue index 98f72f0d9d..f459a437d2 100644 --- a/packages/frontend/src/components/page/page.note.vue +++ b/packages/frontend/src/components/page/page.note.vue @@ -25,52 +25,54 @@ const props = defineProps<{ const note = ref(null); -let timeoutId = null; +// eslint-disable-next-line id-denylist +let timeoutId: ReturnType | null = null; async function sleep(ms: number): Promise { - return new Promise((resolve) => { - setTimeout(() => { - resolve() + return new Promise((resolve) => { + window.setTimeout(() => { + resolve(); }, ms); }); } -async function retryOnThrottle(f: ()=>Promise, retryCount: number = 5): Promise { - let lastResult: T = undefined!; - const r = Math.random(); - for(let i=0; i(f: ()=>Promise, retryCount = 5): Promise { + let lastResult: T; + for (let i = 0; i < retryCount; i++) { const [ok, resultOrError] = await f() .then(result => [true, result]) .catch(err => [false, err]); - - lastResult = resultOrError; + + lastResult = resultOrError; if (ok) { break; } // RATE_LIMIT_EXCEEDED - if (resultOrError?.id === "d5826d14-3982-4d2e-8011-b9e9f02499ef") { + if (resultOrError?.id === 'd5826d14-3982-4d2e-8011-b9e9f02499ef') { await sleep(resultOrError?.info?.fullResetMs ?? 1000); continue; } throw resultOrError; } - return lastResult; + return lastResult; } onMounted(() => { if (props.block.note == null) return; - timeoutId = setTimeout(() => { + timeoutId = window.setTimeout(() => { retryOnThrottle(() => misskeyApi('notes/show', { noteId: props.block.note })).then(result => { - note.value = result; + note.value = result; }); }, 500 * props.index); // rate limit is 2 reqs per sec }); onUnmounted(() => { - if (timeoutId !== null) clearTimeout(timeoutId); + if (timeoutId !== null) { + window.clearTimeout(timeoutId); + } });