From 3eced74a88de43ab9afe542fcce20a8db8e3fe60 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Mon, 22 Feb 2021 14:27:54 +0100 Subject: more tests, fix event ordering issue --- packages/idb-bridge/src/util/queueTask.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'packages/idb-bridge/src/util') diff --git a/packages/idb-bridge/src/util/queueTask.ts b/packages/idb-bridge/src/util/queueTask.ts index 53563ffd2..297602c67 100644 --- a/packages/idb-bridge/src/util/queueTask.ts +++ b/packages/idb-bridge/src/util/queueTask.ts @@ -15,7 +15,20 @@ */ export function queueTask(fn: () => void) { - setImmediate(fn); + let called = false; + const callFirst = () => { + if (called) { + return; + } + called = true; + fn(); + }; + // We must schedule both of these, + // since on node, there is no guarantee + // that a setImmediate function that is registered + // before a setTimeout function is called first. + setImmediate(callFirst); + setTimeout(callFirst, 0); } export default queueTask; -- cgit v1.2.3