GoogleChromeLabs / GoogleChromeLabs/comlink
Are multiple worker possible?
- Dominant language
- TypeScript
- Stars
- 12.8k
- Forks
- 435
- PR merge metrics
- No merged PRs in 30d
Description
I have multiple different workers:
app.ts
```typescript
export const UserResolverWorker: UserResolverType = wrap(new Worker("./UserResolver.worker.js", {type:"module"}));
export const ConnectionsWorker: ConnectionsWorkerType = wrap(new Worker("./Connections.worker.js", {type:"module"}));
```
UserResolver.worker.js
```javascript
export const UserResolverWorker = {
getKeyPairs,
getPeerIdsByUid,
getUserByUid,
getPrivateUserByUid
};
expose(UserResolverWorker);
```
and connections.worker.js
```javascript
const ConnectionsWorker = {
addMessage
};
expose(ConnectionsWorker);
```
I always get the error: Unhandled Rejection (TypeError): Cannot read property 'apply' of undefined
[For this line](https://github.com/GoogleChromeLabs/comlink/blob/cf4edf4b08573b2ab8b5fcf11ff82220bda3bdbb/src/comlink.ts#L297) because `obj` is
```
getKeyPairs: async (from, to) => {…}
getPeerIdsByUid: async uid => {…}
getPrivateUserByUid: async uid => {…}
getUserByUid: async uid => {…}`
```
but path contains only `0: "addMessage"`
Were those workers switched by webpack during hot-reload (1.[hash].worker.js became 0.[hash].worker.js and vice versa) or can I only use one worker with comlink?
Contributor guide
Assessment
This issue has not been assessed yet.