Hopefully fix async race stuff (3)

This commit is contained in:
b 2021-06-19 00:51:07 -07:00
parent e9c9ee2359
commit 3b160ef2e1
2 changed files with 40 additions and 35 deletions

37
load.js
View file

@ -137,26 +137,29 @@ function load_init(init_func) {
console.log("DB failed to open..."); console.log("DB failed to open...");
}; };
request.onsuccess = async function() { request.onsuccess = function() {
db = request.result; (async function() {
if (!reload) { db = request.result;
console.log("Using stored data...") if (!reload) {
load_local(init_func); console.log("Using stored data...")
} load_local(init_func);
else {
if (load_in_progress) {
while (!load_complete) {
await sleep(100);
}
init_func();
} }
else { else {
// Not 100% safe... whatever! if (load_in_progress) {
load_in_progress = true while (!load_complete) {
load(init_func); await sleep(100);
console.log("Using new data...") }
console.log("Skipping load...")
init_func();
}
else {
// Not 100% safe... whatever!
load_in_progress = true
console.log("Using new data...")
load(init_func);
}
} }
} })()
} }
request.onupgradeneeded = function(e) { request.onupgradeneeded = function(e) {

View file

@ -137,27 +137,29 @@ function load_init(init_func) {
console.log("DB failed to open..."); console.log("DB failed to open...");
}; };
request.onsuccess = async function() { request.onsuccess = function() {
db = request.result; (async function() {
if (!reload) { db = request.result;
console.log("Using stored data...") if (!reload) {
load_local(init_func); console.log("Using stored data...")
} load_local(init_func);
else {
if (load_in_progress) {
while (!load_complete) {
await sleep(100);
}
console.log("Skipping load...")
init_func();
} }
else { else {
// Not 100% safe... whatever! if (load_in_progress) {
load_in_progress = true while (!load_complete) {
console.log("Using new data...") await sleep(100);
load(init_func); }
console.log("Skipping load...")
init_func();
}
else {
// Not 100% safe... whatever!
load_in_progress = true
console.log("Using new data...")
load(init_func);
}
} }
} })()
} }
request.onupgradeneeded = function(e) { request.onupgradeneeded = function(e) {