Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
self.send_message_to_client = function(client, msg){
return new Promise(function(resolve, reject){
var msg_chan = new MessageChannel();
msg_chan.port1.onmessage = function(event){
if(event.data.error){
reject(event.data.error);
} else {
resolve(event.data);
}
};
client.postMessage("SW Says: '"+msg+"'", [msg_chan.port2]);
});
};
self.send_message_to_all_clients = function (msg) {
clients.matchAll().then(clients => {
clients.forEach(client => {
self.send_message_to_client(client, msg).then(m => console.log("SW Received Message: " + m));
});
});
};
self.addEventListener("activate", function (event) {
console.info('service worker activated');
event.waitUntil(
clients.claim().then(function () {
// console.info('clients.claim().then here');
self.send_message_to_all_clients("do it now");
})
)
});
Подводные камни Service Workers