diff options
author | Florian Dold <florian@dold.me> | 2021-02-22 14:27:54 +0100 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2021-02-22 14:27:54 +0100 |
commit | 3eced74a88de43ab9afe542fcce20a8db8e3fe60 (patch) | |
tree | 8ef74cfd5cf3bea8fe90cd20746e4fadb0afc349 /packages/idb-bridge/src/util | |
parent | e6946694f2e7ae6ff25f490fa76f3da583c44c74 (diff) | |
download | wallet-core-3eced74a88de43ab9afe542fcce20a8db8e3fe60.tar.gz wallet-core-3eced74a88de43ab9afe542fcce20a8db8e3fe60.tar.bz2 wallet-core-3eced74a88de43ab9afe542fcce20a8db8e3fe60.zip |
more tests, fix event ordering issue
Diffstat (limited to 'packages/idb-bridge/src/util')
-rw-r--r-- | packages/idb-bridge/src/util/queueTask.ts | 15 |
1 files changed, 14 insertions, 1 deletions
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; |