- From: Jackie Han <notifications@github.com>
- Date: Wed, 07 Apr 2021 01:07:02 -0700
- To: w3c/ServiceWorker <ServiceWorker@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
Received on Wednesday, 7 April 2021 08:07:14 UTC
No matter if service worker provides 'setup phase' or 'top level await', thank @wanderview for your simpler solution. Here I post a more complete code snippet, which include updating the cache. Maybe other extension developers will refer to this solution. ``` // I use uppercase to identify global variables var Cache; function init() { return new Promise(function(resolve, reject) { chrome.storage.sync.get(null, function(data) { // setup cache, for example: Cache = data; resolve(); }); }); } var InitPromise = init(); // listen browser events, for example: chrome.tabs.onUpdated.addListener(async function(parameters) { await InitPromise; // now you can use cache to process the event }); // if data changed, e.g. user changed settings, you should update cache. // listen messages or listen storage change event. for example: chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { if(request.type == "update") { InitPromise = init(); } }); ``` -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/w3c/ServiceWorker/issues/1576#issuecomment-814700162
Received on Wednesday, 7 April 2021 08:07:14 UTC