Generadores de JavaScript: El botón de "pausa" para tu código

Generadores de JavaScript que permiten pausar y reanudar la ejecución del código de forma eficiente y controlada.

2 dic 2025 • 3 min read • Q2BSTUDIO Team

Generadores de JavaScript: Código pausado

Generadores de JavaScript: el botón de pausa para tu código. En JavaScript normal existe la regla run to completion, es decir una función corre hasta terminar o hasta encontrar un return. Los generadores rompen esa regla y permiten pausar la ejecución, ceder el control a otro código y luego reanudar exactamente donde se quedó, recordando todo su estado. Es una herramienta ideal para flujos complejos en aplicaciones a medida y software a medida que requieren control preciso del estado y eficiencia en memoria.

La sintaxis clave es sencilla. Se crea un generador con function* y se pausa con yield. Por ejemplo un generador simple puede verse así: function* contador() { yield 1; yield 2; return 3; } Cuando llamas a contador se devuelve un objeto iterador sin ejecutar todavía el cuerpo de la función.

El objetivo es el control manual de la ejecución. Llamar a .next() sobre el iterador avanza la ejecución hasta el siguiente yield y devuelve un objeto con dos propiedades: value que contiene lo que salió por yield y done que indica si el generador terminó. Por ejemplo const gen = contador(); gen.next() devuelve {value:1, done:false} y así sucesivamente hasta que done pasa a true.

Comunicación bidireccional. Además de enviar datos hacia fuera con yield, puedes introducir datos al generador cuando lo reanudas. El valor que pasas a .next se convierte en el resultado de la expresión yield previa. Esto permite construir diálogos dentro del flujo de ejecución o manejar respuestas asíncronas de forma más ordenada, una técnica que fue precursor del patrón async await.

Streams infinitos y eficiencia de memoria. Un uso práctico es generar secuencias infinitas sin consumir memoria innecesaria. Un generador puede crear identificadores únicos o lecturas continuas bajo demanda sin almacenar toda la serie. Ejemplo conceptual: function* idGenerator() { let id = 1; while(true) { yield id++; } } Esto es perfecto para backends y servicios cloud donde cada petición necesita un valor calculado al vuelo y donde optimizar recursos importa, por ejemplo en arquitecturas basadas en servicios cloud aws y azure.

Delegación con yield*. Un generador puede delegar a otro generador usando yield*. Es útil cuando compones pipelines complejos o playlists de procesos, y facilita la modularidad del código en proyectos de software a medida.

Generadores y asincronía. Antes de async await muchas librerías usaban generadores para controlar promesas de forma secuencial. La idea es pausar hasta que una promesa se resuelva y luego continuar, simulando un comportamiento parecido a async await. Comprender esto ayuda a entender la evolución de JavaScript y a diseñar soluciones avanzadas para aplicaciones a medida con necesidades complejas de flujo, automatización de procesos o agentes IA.

Resumen práctico. function* crea el generador. yield produce la pausa y devuelve un valor. .next() reanuda la ejecución y puede recibir un valor que entra al generador. yield* delega en otro generador. Con estos elementos puedes construir desde máquinas de estado y streams infinitos hasta orquestadores de tareas en sistemas distribuidos y pipelines de datos para servicios inteligencia de negocio y power bi.

En Q2BSTUDIO somos especialistas en aplicar estas técnicas en proyectos reales. Desarrollamos aplicaciones a medida y software a medida optimizando rendimiento y escalabilidad, e integramos soluciones de inteligencia artificial y agentes IA para automatizar tareas y mejorar decisiones. Si buscas crear una aplicación robusta y personalizada conoce nuestras capacidades en desarrollo de aplicaciones y software multiplataforma y descubre cómo combinamos ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio y power bi para ofrecer soluciones completas.

Si tu proyecto necesita consultoría en inteligencia artificial, integración de agentes IA, protección mediante pentesting o migración a la nube, en Q2BSTUDIO diseñamos la estrategia y construimos la solución. Contáctanos y veremos cómo los generadores y otras herramientas avanzadas pueden mejorar el flujo y la eficiencia de tu software a medida.

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.

Live Chat