Release Vantage viewer after failed loads [skip ci]
This commit is contained in:
1 parent
602e7fd0f0
commit
7076e847ea
1 file changed
+11
-1
@@ -124,8 +124,18 @@
|
|||||||
const body = result.data ? Uint8Array.from(atob(result.data), (c) => c.charCodeAt(0)) : null;
|
const body = result.data ? Uint8Array.from(atob(result.data), (c) => c.charCodeAt(0)) : null;
|
||||||
return new Response(body, { status: result.status, headers: result.etag ? { etag: result.etag } : {} });
|
return new Response(body, { status: result.status, headers: result.etag ? { etag: result.etag } : {} });
|
||||||
} }) : Promise.resolve(world);
|
} }) : Promise.resolve(world);
|
||||||
return vantage.VantageViewer.mount(host, { world: await source, view: 'top', players: { offline: false } });
|
const resolved = await source;
|
||||||
|
if (cancelled) return null;
|
||||||
|
const v = new vantage.VantageViewer(host, { view: 'top', players: { offline: false } });
|
||||||
|
try {
|
||||||
|
await v.load({ world: resolved, view: 'top' });
|
||||||
|
return v;
|
||||||
|
} catch (e) {
|
||||||
|
v.dispose();
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
}).then((v) => {
|
}).then((v) => {
|
||||||
|
if (!v) return;
|
||||||
if (cancelled) { v.dispose(); return; }
|
if (cancelled) { v.dispose(); return; }
|
||||||
viewer = v;
|
viewer = v;
|
||||||
ready = true;
|
ready = true;
|
||||||
|
|||||||
Reference in new issue
Block a user