Tutorial de generadores de JavaScript

 

 

 

Los generadores son un tipo especial de función con la capacidad de pausarse y reanudarse más tarde, permitiendo que otro código se ejecute mientras tanto.

Los generadores son un tipo especial de función con la capacidad de pausarse y reanudarse más tarde, permitiendo que otro código se ejecute mientras tanto.

El código decide que tiene que esperar, por lo que permite que otros códigos “en la cola” se ejecuten y se reserva el derecho de reanudar sus operaciones “cuando lo que está esperando” esté hecho.

Todo esto se hace con una única y sencilla palabra clave: yield. Cuando un generador contiene esa palabra clave, la ejecución se detiene.

Un generador puede contener muchas yieldpalabras clave, por lo que se detiene varias veces, y se identifica mediante la *functionpalabra clave, que no debe confundirse con el operador de desreferencia de puntero utilizado en lenguajes de programación de nivel inferior como C, C++ o Go.

 

Los generadores posibilitan paradigmas completamente nuevos de programación en JavaScript, permitiendo:

  • Comunicación bidireccional mientras un generador está en funcionamiento
  • Bucles while de larga duración que no congelan el programa

A continuación se muestra un ejemplo de un generador que explica cómo funciona todo.

function *calculator(input) { var doubleThat = 2 * (yield (input / 2)) var another = yield (doubleThat) return (input * doubleThat * another)}

Lo inicializamos con

const calc = calculator(10)

Luego iniciamos el iterador en nuestro generador:

calc.next()

Esta primera iteración inicia el iterador. El código devuelve este objeto:

{ done: false value: 5}

Lo que sucede es que el código ejecuta la función, tal input = 10como se le pasó en el constructor del generador. Se ejecuta hasta que llega a yield, y devuelve el contenido de yield: input / 2 = 5. Por lo tanto, obtuvimos un valor de 5 y la indicación de que la iteración no ha finalizado (la función simplemente está en pausa).Te recomendamos Dioses y mitos

En la segunda iteración pasamos el valor 7:

calc.next(7)

Y lo que obtuvimos es:

{ done: false value: 14}

7se colocó como el valor de doubleThat. Importante: puede leerse como input / 2era el argumento, pero ese es solo el valor de retorno de la primera iteración. Ahora lo omitimos y usamos el nuevo valor de entrada, 7, y lo multiplicamos por 2.

Luego llegamos al segundo rendimiento, y este devuelve doubleThat, por lo que el valor devuelto es 14.

En la siguiente y última iteración, pasamos 100

calc.next(100)

y a cambio obtuvimos

{ done: true value: 14000}

A medida que se realiza la iteración (no se encuentran más palabras clave de rendimiento), simplemente devolvemos (input * doubleThat * another)lo que equivale a 10 * 14 * 100.

Tips para principiantes de JavaScript




Tal vez te puede interesar:

  1. Cómo generar un número aleatorio entre dos números en JavaScript
  2. Cómo esperar el evento DOM listo en JavaScript simple
  3. Cómo determinar si una fecha es hoy en JavaScript
  4. Cómo contar el número de propiedades en un objeto JavaScript

Tutorial de generadores de JavaScript

Los generadores son un tipo especial de función con la capacidad de pausarse y reanudarse más tarde, permitiendo que otro código se ejecute mientras tanto.

programar

es

2025-01-17

 

Si crees que alguno de los contenidos (texto, imagenes o multimedia) en esta página infringe tus derechos relativos a propiedad intelectual, marcas registradas o cualquier otro de tus derechos, por favor ponte en contacto con nosotros en el mail [email protected] y retiraremos este contenido inmediatamente

 

 

Update cookies preferences