summaryrefslogtreecommitdiff
path: root/packages/idb-bridge/src/util
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2021-02-22 14:27:54 +0100
committerFlorian Dold <florian@dold.me>2021-02-22 14:27:54 +0100
commit3eced74a88de43ab9afe542fcce20a8db8e3fe60 (patch)
tree8ef74cfd5cf3bea8fe90cd20746e4fadb0afc349 /packages/idb-bridge/src/util
parente6946694f2e7ae6ff25f490fa76f3da583c44c74 (diff)
downloadwallet-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.ts15
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;