Comments (4)
After digging into this a little bit, I don’t think I will fix this from Comlink’s side.
The biggest change from v3 to v4 was to remove object traversals that were pretty costly, especially on low-end phones. To fix this, I’d have to either re-introduce traversals or give some special handling to apply
(and maybe even call
). A quick prototype for that showed that this requires a good amount of code for something that I think is a rather niché problem.
That being said, you can work around this by giving your transfer handle the capability to traverse objects:
Comlink.transferHandlers.set("ERROR", {
canHandle (obj) {
if(Array.isArray(obj)) {
return obj.some(el => this.canHandle(el));
}
return obj instanceof Error
},
serialize (obj) {
if(Array.isArray(obj)) {
return [obj.map(el => this.serialize(el)), []];
}
const message = obj && obj.message
const stack = obj && obj.stack
obj = Object.assign({}, obj, { message, stack })
return [obj, []]
},
deserialize (obj) {
if(Array.isArray(obj)) {
return obj.map(el => this.deserialize(el));
}
return Object.assign(Error(), obj)
}
});
(Demo & Code: https://comlink-issue-284.glitch.me/)
I’m closing this, but please re-open if you disagree with my decision/reasoning :)
from comlink.
Hm, I might be able to fix that on Comlink’s side.
Can you give me a minimal setup in a gist or something that reproduces this bug? Then I can turn it into a test.
from comlink.
Here: http://next.plnkr.co/edit/jKM1kjMrb43XdbWM
Check the console for errors.
from comlink.
Looking at this now
from comlink.
Related Issues (20)
- Missing types for `Comlink.finalizer` props on objects. HOT 4
- Possible to get reference to original object from a proxy? HOT 2
- Proxy not inferred as a promise when it's a nested inside a proxied object as a property value HOT 4
- Web Worker Hangs if Imported File Contains Top-Level `Await` HOT 6
- Service worker example: stops working when SW is suspended HOT 9
- Set operation is not awaitable HOT 2
- Possible to communicate between web workers? HOT 1
- How to transfer result buffers HOT 2
- [feat] DeasyncEndpoint HOT 2
- Move from Karma to Playwright? HOT 1
- Do I need to use transfer inside a proxy? HOT 1
- Add support for async transferHandle serializer/deserializer HOT 2
- Significant performance optimizations possible in `requestResponseMessage` HOT 4
- Push notifications from web worker HOT 5
- Memory leak when terminating worker with ongoing call HOT 2
- Worker Pool for similar tasks HOT 1
- Sharing constructed objects within a remote context
- How to implement comlink in Next.js 14 App Route
- Feature request: Automatic proxy of arguments HOT 3
- Having issues when using comlink with react (storing in react state) HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from comlink.