From 19bbfc69ab9a72078bf477a4978389344fa4a35d Mon Sep 17 00:00:00 2001 From: Pascal Roehling Date: Mon, 2 Mar 2026 19:13:29 +0100 Subject: [PATCH] fix(reverseGeocoder): abort ongoing requests if a new reverse geocode request comes in --- src/plugins/reverseGeocoder/utils/reverseGeocode.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/plugins/reverseGeocoder/utils/reverseGeocode.ts b/src/plugins/reverseGeocoder/utils/reverseGeocode.ts index 6172e45859..d33d76ac74 100644 --- a/src/plugins/reverseGeocoder/utils/reverseGeocode.ts +++ b/src/plugins/reverseGeocoder/utils/reverseGeocode.ts @@ -32,13 +32,21 @@ const parser = new Parser({ tagNameProcessors: [processors.stripPrefix], }) +let abortController: AbortController | null = null + export async function reverseGeocode( url: string, coordinate: [number, number] ): Promise { + if (abortController) { + abortController.abort() + abortController = null + } + abortController = new AbortController() const response = await fetch(url, { method: 'POST', body: buildPostBody(coordinate), + signal: abortController.signal, }) const parsedBody = await parser.parseStringPromise(await response.text()) @@ -142,6 +150,7 @@ if (import.meta.vitest) { expect(fetchMock).toHaveBeenCalledWith(testUrl, { method: 'POST', body: buildPostBody(testCoordinates), + signal: abortController?.signal, }) expect(feature).toEqual({