Skip to content

Instantly share code, notes, and snippets.

@Hoax017
Last active November 22, 2023 18:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Hoax017/e248674bd8354440c79fa8a0e52a87c6 to your computer and use it in GitHub Desktop.
Save Hoax017/e248674bd8354440c79fa8a0e52a87c6 to your computer and use it in GitHub Desktop.
exec function in worker without new file
// Fonction que vous souhaitez exécuter dans le Worker
function maFonctionDansWorker() {
// Code de la fonction
return "Résultat de ma fonction dans le Worker";
}
// Convertir la fonction en URL pour le Worker
const workerURL = URL.createObjectURL(new Blob([`
${maFonctionDansWorker}
self.onmessage = function(event) {
const message = event.data;
if (message === 'Lance la fonction') {
const resultat = maFonctionDansWorker();
self.postMessage(resultat);
}
};
`], { type: 'application/javascript' }));
// Créer un Worker à partir de l'URL
const monWorker = new Worker(workerURL);
// Envoyer un message au Worker
monWorker.postMessage('Lance la fonction');
// Recevoir des messages du Worker
monWorker.onmessage = function(event) {
console.log('Message du Worker : ', event.data);
// Terminer le Worker une fois que vous avez reçu le résultat
monWorker.terminate();
};
// Nettoyer l'URL Blob après utilisation
URL.revokeObjectURL(workerURL);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment