Created
August 8, 2019 01:37
-
-
Save parzibyte/c0d2bd32a8219b2dae62656d19a336bc to your computer and use it in GitHub Desktop.
Web worker en JavaScript - https://parzibyte.me/blog/2018/09/07/web-workers-javascript/
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Ejemplo de Web Worker calculando primos | |
* @author parzibyte.me/blog | |
*/ | |
/* | |
Esto será ejecutado únicamente cuando le pasamos datos al worker | |
Si no queremos llamarlo y queremos que se ejecute tan pronto lo instanciamos, | |
simplemente quitamos la función y dejamos todo el código afuera. | |
La ventaja de esperar a onmessage es que podemos recibir parámetros | |
*/ | |
onmessage = function(evento){ | |
var limite = evento.data; // Lo que recibimos de la llamada | |
var mayorEncontradoHastaElMomento = 0; // Aquí guardaremos el mayor | |
function esPrimo(numero) { | |
for (var i = 2; i < numero; i++) { | |
if (numero % i === 0) { | |
return false; | |
} | |
} | |
return numero !== 1; | |
} | |
for(var x = 0; x < limite; x++){ | |
if(esPrimo(x)){ | |
mayorEncontradoHastaElMomento = x; | |
} | |
} | |
//Cuando termine el for, llamamos al método | |
// postMessage para informar a nuestro invocador | |
// que hemos terminado nuestra larga e importante tarea | |
postMessage("Hola. El número primo más grande menor que " + limite.toString() + " es " + mayorEncontradoHastaElMomento.toString()); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment