refactor: wait for save

This commit is contained in:
cha0s 2024-06-21 04:43:32 -05:00
parent 18734debff
commit 5f139f8960
2 changed files with 6 additions and 2 deletions

View File

@ -9,6 +9,7 @@ export default class LocalClient extends Client {
this.worker.addEventListener('message', (event) => {
if (0 === event.data) {
this.worker.terminate();
this.worker = undefined;
return;
}
this.accept(event.data);

View File

@ -36,9 +36,12 @@ export default function PlaySpecific() {
if ('local' !== type) {
return;
}
function onBeforeUnload(event) {
async function onBeforeUnload(event) {
client.disconnect();
event.preventDefault();
function waitForSave() {
return new Promise((resolve) => setTimeout(resolve, 0));
}
while (client.worker) { await waitForSave(); }
}
addEventListener('beforeunload', onBeforeUnload);
return () => {