🐽 Makes model-loading use result type for error handling

This commit is contained in:
Rune Harlyk
2024-02-23 00:59:43 +01:00
parent 1f8d753dd7
commit e7788fb3a0
2 changed files with 14 additions and 7 deletions
+5 -4
View File
@@ -1,8 +1,9 @@
import { LoaderUtils } from "three";
import URDFLoader, { type URDFRobot } from "urdf-loader"
import { XacroLoader } from "xacro-parser"
import { Result } from "$lib/utilities";
export const loadModelAsync = async (url:string):Promise<[URDFRobot, string[]]> => {
export const loadModelAsync = async (url:string):Promise<Result<[URDFRobot, string[]], string>> => {
return new Promise((resolve, reject) => {
const xacroLoader = new XacroLoader();
@@ -22,9 +23,9 @@ export const loadModelAsync = async (url:string):Promise<[URDFRobot, string[]]>
.filter(joint => joint[1].jointType !== 'fixed')
.map(joint => joint[0])
resolve([model, joints]);
} catch (error) {
reject(error);
resolve(Result.ok([model, joints]));
} catch (error) {
resolve(Result.err("Failed to load model", error));
}
}, (error) => reject(error));
});