rc3-html-infobeamer/public/js/schedule_worker.js

46 lines
1.1 KiB
JavaScript

let scheduleFetchInterval;
let scheduleURL;
onmessage = function(e) {
let msgType = e.data.msgType;
if (msgType === "ScheduleFetchConfig") {
scheduleURL = e.data.scheduleURL;
scheduleFetchInterval = 1000 * e.data.scheduleFetchInterval;
console.log("Message: " + msgType);
console.log('Using schedule url: ' + scheduleURL);
console.log('Fetching data each [ms]: ' + scheduleFetchInterval);
}
};
function scheduleFetch() {
let now = new Date();
if (scheduleURL) {
fetch(scheduleURL).then(
b => b.json()).then(
j => postMessage({msgType: "ScheduleUpdate",
schedule: j,
timestamp: now}))
.catch(e => console.log(e.message));
}
// TODO: Hook up schedule processing functions
}
// TODO: Fix run once and then periodic
scheduleFetch();
(function periodicScheduleFetch() {
setTimeout(function() {
scheduleFetch();
periodicScheduleFetch();
}, scheduleFetchInterval);
})();