- From: 曾田生 <notifications@github.com>
- Date: Tue, 09 Aug 2022 23:25:37 -0700
- To: w3c/ServiceWorker <ServiceWorker@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <w3c/ServiceWorker/issues/1656@github.com>
I have a strange problem. I pass a value from the client to the service worker as a postmessage, and the service worker records the value. But when the service worker gets this value internally, it is empty. I can't reproduce this situation locally, but my log records this situation. What could be the reason for this, or any ideas to help me troubleshoot this problem?
The pseudo-code
```js
// client
navigator.serviceWorker.controller.postMessage({ type: 'SET_AUTH_KEY', data });
```
```js
// Service Worker
class SWEvent {
eventData
constructor() {
this.eventData = {}
self.addEventListener('message', (event) => {
if (event.data.type === 'SET_AUTH_KEY') {
this.eventData = event.data.data
swLogMessage({ level: 'info', desc: 'successfully set auth_key to sw' }, clientId);
}
});
}
getEventData() {
return this.eventData
}
}
const sWEvent= new SWEvent()
// Execute after a period of time
setTimeout(() => {
const data = sWEvent.getEventData()
if (!data) {
swLogMessage(
{ level: 'warn', desc: 'url not auth_key' },
clientId
);
}
}, 5000);
```

It can be seen from the log time that the value has been set to sw normally, but cannot be obtained
--
Reply to this email directly or view it on GitHub:
https://github.com/w3c/ServiceWorker/issues/1656
You are receiving this because you are subscribed to this thread.
Message ID: <w3c/ServiceWorker/issues/1656@github.com>
Received on Wednesday, 10 August 2022 06:25:50 UTC