Concurrencia JavaScript

Feb 20 2023
La concurrencia es la capacidad de un programa para ejecutar múltiples tareas simultáneamente. En JavaScript, la concurrencia se puede lograr a través de varios mecanismos, como trabajadores web, async/await y promesas.

La concurrencia es la capacidad de un programa para ejecutar múltiples tareas simultáneamente. En JavaScript, la concurrencia se puede lograr a través de varios mecanismos, como trabajadores web, async/await y promesas. En este artículo, exploraremos estos mecanismos y discutiremos sus beneficios y limitaciones.

  1. Trabajadores web Los trabajadores web son un mecanismo que permite que el código JavaScript se ejecute en un subproceso separado. Los trabajadores web son útiles cuando queremos realizar tareas que requieren un uso intensivo de la CPU sin bloquear el hilo principal. Por ejemplo, podemos usar un trabajador web para realizar un cálculo complejo sin congelar la interfaz de usuario.

Aquí hay un ejemplo:

// main.js
const worker = new Worker('worker.js');
worker.postMessage('Hello from main.js');
worker.onmessage = (event) => {
  console.log('Received message from worker:', event.data);
};

// worker.js
self.onmessage = (event) => {
  console.log('Received message from main.js:', event.data);
  self.postMessage('Hello from worker.js');
};

Aquí hay un ejemplo:

async function getData() {
  const response = await fetch('https://example.com/data.json');
  const data = await response.json();
  return data;
}

Aquí hay un ejemplo:

fetch('https://example.com/data.json')
  .then((response) => response.json())
  .then((data) => console.log(data))
  .catch((error) => console.error(error));