mirror of
https://codeberg.org/vlw/monkeydo.git
synced 2025-09-13 15:53:40 +02:00
Remove promise anipattern
This commit is contained in:
parent
46f3a07c85
commit
6b18c90228
2 changed files with 29 additions and 34 deletions
|
@ -75,19 +75,17 @@ class Monkey {
|
||||||
|
|
||||||
// Install a Monkeydo manifest
|
// Install a Monkeydo manifest
|
||||||
async loadManifest(manifest) {
|
async loadManifest(manifest) {
|
||||||
return await new Promise((resolve,reject) => {
|
if(typeof manifest !== "object") {
|
||||||
if(typeof manifest !== "object") {
|
try {
|
||||||
try {
|
manifest = JSON.parse(manifest);
|
||||||
manifest = JSON.parse(manifest);
|
|
||||||
}
|
|
||||||
catch {
|
|
||||||
reject("Failed to load manifest");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
this.tasks.manifest = manifest.tasks;
|
catch {
|
||||||
this.flags[0] = 1; // Manifest loaded: true
|
Promise.reject("Failed to load manifest");
|
||||||
resolve();
|
}
|
||||||
});
|
}
|
||||||
|
this.tasks.manifest = manifest.tasks;
|
||||||
|
this.flags[0] = 1; // Manifest loaded: true
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -48,14 +48,12 @@ export default class MonkeyMaster {
|
||||||
this.comlink = await new Monkey();
|
this.comlink = await new Monkey();
|
||||||
|
|
||||||
// Wait for comlink to spin up
|
// Wait for comlink to spin up
|
||||||
return await new Promise((resolve,reject) => {
|
if(!this.comlink) Promise.reject("Failed to establish Comlink with worker");
|
||||||
if(!this.comlink) reject("Failed to establish Comlink with worker");
|
|
||||||
|
|
||||||
this.ready = true;
|
this.ready = true;
|
||||||
// Send queued flags when worker is ready
|
// Send queued flags when worker is ready
|
||||||
this.queue.sendAllFlags();
|
this.queue.sendAllFlags();
|
||||||
resolve();
|
return true;
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Return a flag array index by name
|
// Return a flag array index by name
|
||||||
|
@ -104,21 +102,20 @@ export default class MonkeyMaster {
|
||||||
// Load a Monkeydo manifest by URL or JSON string
|
// Load a Monkeydo manifest by URL or JSON string
|
||||||
async loadManifest(manifest) {
|
async loadManifest(manifest) {
|
||||||
if(!this.ready) await this.init();
|
if(!this.ready) await this.init();
|
||||||
return await new Promise((resolve,reject) => {
|
let load = null;
|
||||||
let load = null;
|
// Attempt load string as URL and fetch manifest
|
||||||
// Attempt load string as URL and fetch manifest
|
try {
|
||||||
try {
|
const url = new URL(manifest);
|
||||||
const url = new URL(manifest);
|
// If the URL parsed but fetch failed, this promise will reject
|
||||||
// If the URL parsed but fetch failed, this promise will reject
|
load = this.comlink.fetchManifest(url.toString());
|
||||||
load = this.comlink.fetchManifest(url.toString());
|
}
|
||||||
}
|
// Or attempt to load string as JSON if it's not a URL
|
||||||
// Or attempt to load string as JSON if it's not a URL
|
catch {
|
||||||
catch {
|
load = this.comlink.loadManifest(manifest);
|
||||||
load = this.comlink.loadManifest(manifest);
|
}
|
||||||
}
|
|
||||||
load.then(() => resolve())
|
load.then(() => Promise.resolve())
|
||||||
.catch(() => reject("Failed to load manifest"));
|
.catch(() => Promise.reject("Failed to load manifest"));
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async stop() {
|
async stop() {
|
||||||
|
|
Loading…
Add table
Reference in a new issue