From d01a94fbecad501f6658c9233af33c9ba1242b7d Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Tue, 20 Aug 2024 22:41:29 +0530 Subject: [PATCH] Fix variable capturing --- web/packages/new/photos/services/ml/worker.ts | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/web/packages/new/photos/services/ml/worker.ts b/web/packages/new/photos/services/ml/worker.ts index e59e0f8731..fdcb1ac595 100644 --- a/web/packages/new/photos/services/ml/worker.ts +++ b/web/packages/new/photos/services/ml/worker.ts @@ -311,14 +311,17 @@ const indexNextBatch = async ( while (i < items.length) { for (let j = 0; j < tasks.length; j++) { if (i < items.length && !tasks[j]) { - tasks[j] = index(ensure(items[i++]), electron) - .then(() => { - tasks[j] = undefined; - }) - .catch(() => { - allSuccess = false; - tasks[j] = undefined; - }); + // Use an IIFE to capture the value of j at the time of + // invocation. + tasks[j] = ((item: IndexableItem, j: number) => + index(item, electron) + .then(() => { + tasks[j] = undefined; + }) + .catch(() => { + allSuccess = false; + tasks[j] = undefined; + }))(ensure(items[i++]), j); } }