Skip to content

Commit 34e0879

Browse files
authored
Merge pull request galacean#2451 from luzhuang/fix/gltfLoaderThrowError
fix: gltfLoader throw error when url load failed
2 parents cfe8c34 + 34b705b commit 34e0879

File tree

2 files changed

+20
-5
lines changed

2 files changed

+20
-5
lines changed

packages/loader/src/gltf/parser/GLTFParserContext.ts

+6-3
Original file line numberDiff line numberDiff line change
@@ -150,9 +150,12 @@ export class GLTFParserContext {
150150
_addTaskCompletePromise(taskPromise: Promise<any>): void {
151151
const task = this._progress.taskComplete;
152152
task.total += 1;
153-
taskPromise.then(() => {
154-
this._setTaskCompleteProgress(++task.loaded, task.total);
155-
});
153+
taskPromise.then(
154+
() => {
155+
this._setTaskCompleteProgress(++task.loaded, task.total);
156+
},
157+
() => {}
158+
);
156159
}
157160

158161
private _handleSubAsset<T>(

tests/src/core/resource/ResourceManager.test.ts

+14-2
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,12 @@ describe("ResourceManager", () => {
6868
const glTFLoader = ResourceManager._loaders["GLTF"];
6969

7070
const loaderSpy = vi.spyOn(glTFLoader, "load");
71-
71+
7272
engine.resourceManager.load("https://gw.alipayobjects.com/os/bmw-prod/5e3c1e4e-496e-45f8-8e05-f89f2bd5e4a4.glb");
7373
engine.resourceManager.load("https://gw.alipayobjects.com/os/bmw-prod/5e3c1e4e-496e-45f8-8e05-f89f2bd5e4a4.glb");
74-
engine.resourceManager.load("https://gw.alipayobjects.com/os/bmw-prod/5e3c1e4e-496e-45f8-8e05-f89f2bd5e4a4.glb?q=materials[0]");
74+
engine.resourceManager.load(
75+
"https://gw.alipayobjects.com/os/bmw-prod/5e3c1e4e-496e-45f8-8e05-f89f2bd5e4a4.glb?q=materials[0]"
76+
);
7577
expect(loaderSpy).toHaveBeenCalled();
7678
});
7779
});
@@ -88,4 +90,14 @@ describe("ResourceManager", () => {
8890

8991
// TODO: case for gltf loader load invalid q url, expect to throw
9092
});
93+
94+
describe("load asset", () => {
95+
it("not found", async () => {
96+
try {
97+
await engine.resourceManager.load("/model.glb");
98+
} catch (e) {
99+
expect(e).to.be.an.instanceOf(Error);
100+
}
101+
});
102+
});
91103
});

0 commit comments

Comments
 (0)