From a457a64dc0c8db4ba8a5a0fae221ec6962122548 Mon Sep 17 00:00:00 2001 From: Mikael Finstad Date: Fri, 9 Aug 2024 23:21:32 +0200 Subject: [PATCH] wait for updateAssembly when restoring fixes potential race condition --- packages/@uppy/transloadit/src/index.ts | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/packages/@uppy/transloadit/src/index.ts b/packages/@uppy/transloadit/src/index.ts index aa3b2a450f..197a92cd01 100644 --- a/packages/@uppy/transloadit/src/index.ts +++ b/packages/@uppy/transloadit/src/index.ts @@ -703,20 +703,21 @@ export default class Transloadit< this.#connectAssembly(this.assembly) } - // Force-update all Assemblies to check for missed events. - const updateAssemblies = () => { + // Force-update Assembly to check for missed events. + const updateAssembly = () => { return this.assembly?.update() } // Restore all Assembly state. - this.restored = Promise.resolve().then(() => { + this.restored = (async () => { restoreState() restoreAssemblies() - updateAssemblies() - }) - - this.restored.then(() => { + await updateAssembly() this.restored = null + })() + + this.restored.catch((err) => { + this.uppy.log('Failed to restore', err) // or we risk unhandled rejection }) }