Attualmente sto scrivendo una piccola libreria in JavaScript per aiutarmi a delegare a un web-worker alcuni calcoli pesanti.Rilevare attendibilmente se lo script è in esecuzione in un web worker
Per alcuni motivi (principalmente per la possibilità di eseguire il debug nel thread dell'interfaccia utente e quindi eseguire lo stesso codice in un worker) vorrei rilevare se lo script è attualmente in esecuzione in un worker o nel thread dell'interfaccia utente.
Io non sono uno sviluppatore JavaScript stagionato e vorrei assicurare che la seguente funzione in modo affidabile rilevare se sono in un operaio o no:
function testenv() {
try{
if (importScripts) {
postMessage("I think I'm in a worker actually.");
}
} catch (e) {
if (e instanceof ReferenceError) {
console.log("I'm the UI thread.");
} else {
throw e;
}
}
}
Quindi, lo fa?
'e se e instanceof ReferenceError' deve generare un errore di sintassi. –
Era specifico per Firefox, ora risolto. – thomas
Domanda correlata (senza risposta, però): [Esiste un meccanismo standard per rilevare se un JavaScript è in esecuzione come WebWorker?] (Http://stackoverflow.com/questions/7507638/is-there-a-standard- meccanismo-per-rilevare-se-un-javascript-è-esecuzione-come-un-noi) –