-
Notifications
You must be signed in to change notification settings - Fork 3.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add more cases of calling error callbacks #16150
Conversation
Please make sure to label your PR with "bug", "new feature" or "breaking change" label(s). |
Snapshot stored with reference name: Test environment: To test a playground add it to the URL, for example: https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/refs/pull/16150/merge/index.html#WGZLGJ#4600 Links to test babylon tools with this snapshot: https://playground.babylonjs.com/?snapshot=refs/pull/16150/merge To test the snapshot in the playground with a playground ID add it after the snapshot query string: https://playground.babylonjs.com/?snapshot=refs/pull/16150/merge#BCU1XR#0 |
WebGL2 visualization test reporter: |
Visualization tests for WebGPU |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
same comments as raanan
WebGL2 visualization test reporter: |
Visualization tests for WebGPU |
WebGL2 visualization test reporter: |
Visualization tests for WebGPU |
Several of the previously synchronous functions somewhat recently became asynchronous. However, this left us in a state where thrown errors end up in ignored
Promise
s, and so you just see an unhandled error in the console log, rather than the error propagating to the caller through a finalPromise
and/oronError
callback. This change tries to catch those missed cases and route them correctly, but at this point the code is very hard to reason about and understand where additional error handling is needed. Since there is no synchronous path anymore, we should rewrite a lot of this code to just use async/await, and have the callback based functions just be wrappers that still exist for back compat. This would make it way easier to understand and maintain the code. That said, this should probably be a post-8.0 release change.