Mismo mensaje, nueva forma

Aprende por qué las banderas de cancelación pueden ser truthy o falsy en JavaScript y TypeScript, gestiona closures, evita el shadowing y usa AbortController para cancelar fetch y gestionar bucles asíncronos.

20 ago 2025 • 3 min de lectura • Equip Q2BSTUDIO

Inteligencia-Artificial-

always falsy y por qué if cancel no siempre es falso en JavaScript y TypeScript

Explicación general En el ejemplo original let cancel = false y la función canceler que hace cancel = true funcionan correctamente porque las variables declaradas con let son mutables y las closures acceden a la variable por referencia. Por tanto la condición if (cancel) no es siempre falsy; será false hasta que se ejecute canceler y después será true provocando la salida del bucle.

Reglas de truthiness En JavaScript los valores falsy son false 0 cadena vacía null undefined y NaN. Cualquier otro valor es truthy. Si declara let cancel = 0 entonces if (cancel) será falso mientras cancel sea 0 y verdadero si asigna otro número distinto de 0.

TypeScript y VSCode VSCode infiere el tipo boolean para let cancel = false y mostrará cancel:boolean. Eso es esperado y no significa que la variable no pueda cambiar en tiempo de ejecución. Si desea mayor claridad puede anotar el tipo explícitamente let cancel:boolean = false.

Closure y shadowing Atención con el shadowing si redeclara la variable cancel en un scope interno la closure podría referenciar otra variable distinta. Evite usar const si necesita reasignar y asegúrese de no redeclarar la misma identificador en scopes anidados.

Patrones recomendados Para cancelar peticiones fetch use AbortController ya que permite abortar la operación HTTP a nivel de API y evita fugas de recursos. Para bucles asíncronos sencillos una bandera booleana es suficiente y clara. Otra alternativa es usar un objeto status = { cancel:false } cuando necesite pasar la referencia a múltiples funciones y prefiera mutar una propiedad en lugar de reasignar una variable primitiva.

Ejemplo práctico sencillo let cancel = false const canceler = () => cancel = true void async function procesar() { for (const favorite of favorites) { if (cancel) break try { const channel = await fetchChannel(favorite.channelID) channelMap.set(favorite.channelID, channel ? channel : NOT_FOUND) } catch { channelMap.set(favorite.channelID, ERROR) } sortFavorites() } } return canceler En solicitudes HTTP reemplace fetchChannel por una llamada que reciba un AbortSignal y cancele la petición con controller.abort() para interrumpir la transferencia de datos.

Buenas prácticas resumen Use booleanos claros para banderas de cancelación anote tipos en TypeScript si desea mayor claridad utilice AbortController para peticiones fetch evite redeclaraciones y prefiera nombres descriptivos como shouldCancel o isCancelled si trabaja en equipo.

Sobre Q2BSTUDIO Q2BSTUDIO es una empresa de desarrollo de software focalizada en crear aplicaciones a medida y software a medida para empresas de todos los sectores. Somos especialistas en inteligencia artificial ciberseguridad servicios cloud aws y azure servicios inteligencia de negocio ia para empresas agentes IA y soluciones con Power BI. Diseñamos soluciones integradas que combinan agentes IA con plataformas de visualización como Power BI para ofrecer análisis accionables y mejorar la toma de decisiones.

Qué podemos ofrecer Desarrollo de aplicaciones a medida consultoría en inteligencia artificial implementación de agentes IA integración con servicios cloud aws y azure soluciones de ciberseguridad servicios inteligencia de negocio y proyectos con Power BI para convertir datos en ventaja competitiva. Contacte a Q2BSTUDIO para transformar su idea en producto escalable y seguro aprovechando la inteligencia artificial y las mejores prácticas en arquitectura cloud.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Intel·ligència artificial

Agents d'IA, chatbots i assistents intel·ligents que automatitzen tasques i atenen els teus clients 24/7 per millorar l'eficiència del teu negoci.

Més info

Desenvolupament de programari

Aplicacions web, mòbils i d'escriptori, intranets, e-commerce, SaaS i plataformes de gestió dissenyades per a les necessitats concretes de la teva empresa.

Més info

Serveis cloud

Migració, infraestructura, hosting gestionat, alta disponibilitat i seguretat en Microsoft Azure i Amazon Web Services perquè el teu negoci escali sense límits.

Més info

Ciberseguretat i pentesting

Auditories de seguretat, test d'intrusió (pentesting) i protecció d'aplicacions, dades i infraestructura on-premise i cloud, amb hacking ètic i compliment normatiu.

Més info

Business Intelligence

Quadres de comandament i anàlisi de dades amb Power BI: integrem les teves fonts, dissenyem dashboards i KPIs i convertim les teves dades en decisions.

Més info

Automatització de processos

Automatitzem tasques repetitives i connectem les teves aplicacions amb n8n, Power Automate, Make i RPA, eliminant treball manual i augmentant la productivitat.

Més info

Formació per a empreses

Formem els teus equips en tecnologia amb criteri: desenvolupament web, bases de dades, Git, bones pràctiques i seguretat, automatització amb n8n, intel·ligència artificial per a empreses i creació de solucions d'IA amb Azure AI Foundry.

Més info

Auditoria de codi

Auditem el codi que creguis tu, el teu equip o una IA: et diem què està bé i què millorar, el securitzem i el deixem llest per a producció, web o app.

Més info

Generació d'imatges amb IA

Creem per tu les imatges que necessita el teu negoci amb intel·ligència artificial: producte, xarxes, publicitat, il·lustració i avatars. Tu ens dius què vols i t'ho lliurem llest per fer servir.

Més info

Generació de vídeos amb IA

Creem per tu vídeos amb intel·ligència artificial: promocionals, per a xarxes, presentadors virtuals, doblatge i animacions. Ens comptes la idea i t'ho lliurem muntat i llest per publicar.

Més info

Avatars conversacionals amb IA

Creem avatars conversacionals amb IA —humans digitals amb cara i veu— que atenen els teus clients i equips amb el coneixement de la teva empresa, a la teva web, monitors interactius, WhatsApp o Teams.

Més info

Màrqueting Online i IA

Google Ads, Meta Ads, LinkedIn Ads i posicionament en motors d'IA (GEO/AEO): captem clients i fem que la teva marca aparegui on et busquen, també a ChatGPT, Gemini i Perplexity.

Més info

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.