¿Qué son los generadores (generators) en JavaScript?
Los generators son funciones que pueden ser pausadas y resumidas. Pueden enviar valores cuando se pausan y recuperar valores cuando continúan.
Los generators son importantes porque permiten a las funciones asíncronas escribir como funciones síncronas normales.
¿Cómo crear una función generator en javascript?
function* genFunc() {
yield "a";
yield;
yield 123;
}
Los generators son similares a las funciones generales excepto que utilizan un asterisco (*) después de la palabra function. Esta sintaxis puede lucir parecida a la notación de punteros de otros lenguajes de programación, pero no tiene relación alguna.
¿Cómo utilizar Yield dentro de un generador?
La palabra yield
es utilizada para pausar el generador. También puede ser utilizada para recibir o enviar un valor por parte del generator.
Ejemplo:
yield 'a'; // pausa el generador y envía el valor 'a'
yield; // pausa el generador y enviar un valor undefined
yield 123; pausa el generador y envía el valor 123
Valor de retorno dentro de un Generator
Las funciones Generator tienen un valor de retorno opcional. Al omitir dicho valor el valor retornado es undefined. El valor de retorno de la función generator es frecuentemente no especificado.