diff --git a/packages/common/src/utils.ts b/packages/common/src/utils.ts index 3837f2bdc8..6bf309c62c 100644 --- a/packages/common/src/utils.ts +++ b/packages/common/src/utils.ts @@ -751,7 +751,7 @@ export const toIterable = ( export const toArray = ( values: readonly T[] | ReadonlyMap, ): T[] => { - return Array.from(toIterable(values)); + return Array.isArray(values) ? values : Array.from(toIterable(values)); }; export const isTestEnv = () => import.meta.env.MODE === ENV.TEST; diff --git a/packages/element/src/store.ts b/packages/element/src/store.ts index 19ba1a286c..c561290778 100644 --- a/packages/element/src/store.ts +++ b/packages/element/src/store.ts @@ -310,12 +310,7 @@ export class Store { } private flushMicroActions() { - const microActions = [...this.scheduledMicroActions]; - - // clear the queue first, in case it mutates in the meantime - this.scheduledMicroActions = []; - - for (const microAction of microActions) { + for (const microAction of this.scheduledMicroActions) { try { microAction(); } catch (error) {