Comments (5)
While most of the demos work by invoking a function on a worker and receiving a value, there's nothing preventing you inverting the logic and having the worker invoke a function on the main thread instead. It just depends on which side you setup the proxy.
from comlink.
To expand on that further if you want to go bidirectional, it's probably best to setup MessageChannels between the two and then use these for the proxy.
from comlink.
Thanks, I'll take a look at MessageChannels since I'm still experimenting. I'm hoping I can pull the data, post the "data converted" action, and have an RxStore listener on the other side to then trigger UI updates.
from comlink.
@tgallagher2017 By the way workers also support the BroadcastChannel API that is in all major browsers as of 2022. -- You can do "channels" which are just event buses that can be listened to or broadcast into, across tabs, iframes, workers, as long as it's the same origin.
(It's not comlink, sure, but maybe it serves your needs. 🤷♂️)
from comlink.
@tgallagher2017 It sounds like what you're looking for is a way to do pub-sub. Comlink does not have built-in mechanisms for pub-sub.
I am the author of a library called Transporter that was heavily influenced by Comlink but attempts to have more real word usability. With Transporter you can do pub-sub using Observables. Transporter also has an API called BroadcastSubject
, in the browser package, that uses BroadcastChannel
under the hood to provide an Observable interface on top of BroadcastChannel
.
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
- Memory leak when terminating worker with ongoing call HOT 2
- Worker Pool for similar tasks HOT 2
- 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.