Tengo un trabajador web que funciona perfectamente en todos los navegadores, excepto en mi favorito. "Safari". El resultado es totalmente aleatorio. A veces es trabajo, a veces no, y realmente no entiendo por qué.
Mi código es una muestra, pero probablemente haga algo mal... ¿Alguna idea?
Principal.js
function CreateWorker(){ return new Promise((resolve, reject) => { const w = new Worker("worker.js"); w.onmessage = function (args) { alert("work fine");}; w.onerror = function(e){ alert("error");}; w.postMessage({ Size : 1280}); }); } CreateWorker();Trabajador.js
onmessage = function (args) { postMessage({ Msg : "Received"}); }Entonces, si lo pruebo en varios navegadores, todo funciona bien, pero Safari siempre da un resultado aleatorio. ¿Es posible que sea una historia de caché, o algo que extraño en alguna parte?
¿Es posible que el trabajador no haya terminado de cargar el archivo y no esté listo para recibir el mensaje? En caso afirmativo, ¿hay alguna forma de validar que el trabajador está listo para recibir un mensaje?
Gracias por tu ayuda.