CursosEmpresasBlogLiveConfPrecios

Qué son los Callbacks

Clase 6 de 26 • Curso de Asincronismo con JavaScript

Clase anteriorSiguiente clase

Contenido del curso

Introducción
  • 1
    Lo que aprenderás en este curso

    Lo que aprenderás en este curso

    01:34
  • 2
    Qué es el asincronismo

    Qué es el asincronismo

    09:25
  • 3
    Event Loop

    Event Loop

    11:13
  • 4
    Iniciando a programar con JavaScript

    Iniciando a programar con JavaScript

    02:59
Callbacks
  • 5
    Configuración

    Configuración

    10:23
  • 6
    Qué son los Callbacks

    Qué son los Callbacks

    14:56
  • 7

    Playground: Ejecuta un callback con 2s de demora

    00:00
  • 8
    XMLHTTPRequest

    XMLHTTPRequest

    15:03
  • 9
    Fetch data

    Fetch data

    17:44
  • 10
    Callback hell

    Callback hell

    06:56
Promesas
  • 11
    Qué son las promesas

    Qué son las promesas

    11:54
  • 12

    Playground: Crea una función de delay que soporte asincronismo

    00:00
  • 13
    Fetch

    Fetch

    16:12
  • 14
    Fetch POST

    Fetch POST

    14:55
Async Await
  • 15
    Funciones asíncronas

    Funciones asíncronas

    10:07
  • 16
    Try and catch

    Try and catch

    11:51
  • 17

    Playground: Captura el error de una petición

    00:00
  • 18
    ¿Cómo enfrentar los errores?

    ¿Cómo enfrentar los errores?

    03:42
Generadores
  • 19
    Generators

    Generators

    08:06
Proyecto CV
  • 20
    Proyecto del curso

    Proyecto del curso

    11:48
  • 21
    Consumiendo API

    Consumiendo API

    19:24
  • 22
    Desplegando el proyecto

    Desplegando el proyecto

    16:45
  • 23

    Playground: Crea una utilidad para hacer peticiones

    00:00
Nunca pares de crear
  • 24
    Conclusión

    Conclusión

    03:09
  • 25
    ¿Qué camino tomar para seguir aprendiendo?

    ¿Qué camino tomar para seguir aprendiendo?

    04:12
  • 26

    Autoevaluación de Proyecto: Creación de Landing Page

    00:44
    Francisco Encabo Servián

    Francisco Encabo Servián

    student•
    hace 3 años

    Al principio es difícil entender un callback de esta forma. Piensas, "si ya tengo la función sum, para que hacer un callback, puedo llamarla tal cual y omitir ese paso". Pero piensa que tienes funciones para sumar, restar, multiplicar .....como hacer una calculadora. Las declaras todas en lista, y abajo solo tienes que usar un callback que va tirando de todas a la vez.

    function sum(num1, num2) { return num1 + num2; } function rest(num1, num2) { return num1 - num2; } function mult(num1, num2) { return num1 * num2; } function div(num1, num2) { return num1 / num2; } function calc(num1, num2, callback) { return callback(num1, num2); };

    Ahora ya tiene sentido!!!!!

      Emerson David Cabrera Salas

      Emerson David Cabrera Salas

      student•
      hace 3 años

      Este ejemplo viene genial para comprender aún mejor el concepto de callback!

      Juan José ospina betancur

      Juan José ospina betancur

      student•
      hace 3 años

      decía exactamente lo mismo, hasta que vi este ejemplo, muchas gracias

    Maria Gabriela Rodriguez Cuevas

    Maria Gabriela Rodriguez Cuevas

    student•
    hace 3 años

    📩 𝗖𝗹𝗮𝘀𝗲 #𝟲: 𝗤𝘂é 𝘀𝗼𝗻 𝗹𝗼𝘀 𝗖𝗮𝗹𝗹𝗯𝗮𝗰𝗸𝘀 𝟲/𝟮𝟭 📩 . 🪃 Un Callback es una una función que se pasa como argumento de otra función y que será invocada. . ✏️ ++Ejemplos:++ .

    • En ++VSC++ crear una carpeta dentro de la carpeta ++src++ llamada callback
    • Crear dentro de la carpeta ++callback++ el archivo index.js
    • Dentro de ++index.js++ se coloca la estructura de los que será un ++callback++:
    function sum(num1, num2){ return num1 + num2; } function calc(num1, num2, callback) { return callback(num1, num2); }; //No necesariamente se debe llamar callback console.log(calc(2, 2, sum)); //sum debe estar sin () y sin argumentos //

    .

    • Luego se selecciona el código y al dar click derecho, seleccionar Run Code (debe estar instalado la extensión ++Code Runner++).
    • Aparece abajo la consola con la salida de la suma de los 2 números.
    • Para el segundo ejemplo, se tiene un setTimeout que funciona como un ++callback++, en el código está configurado para imprimir el mensaje 2 segundos después de ejecutar el código con Run Code:
    setTimeout(function (){ console.log('Hola JavaScript'); }, 2000) //la función es anónima por eso no tiene nombre

    .

    • En el tercer ejemplo tenemos un setTimeout con una función que se le pasa por argumento:
    function gretting(name){ console.log(`Hola ${name}`); } setTimeout(gretting, 2000, 'Maria'); //se pasa primero la función, de segundo el tiempo de espera y el argumento

    🆘 Si tienen problemas con conseguir las comillas invertidas `` en el enlace hay varias respuestas: aquí

      Jonathan Barzola

      Jonathan Barzola

      student•
      hace 3 años

      Maria con los mejores resumenes!

      Jason Steven Méndez Balambá

      Jason Steven Méndez Balambá

      student•
      hace 3 años

      Denles un mes gratis a los que nos hacen resúmenes :D ¡Gracias Maria!

    Matias Diaz

    Matias Diaz

    student•
    hace 3 años

    ALT + 96 = `` Para los que no las tengan en su teclado

      Luis Alfredo Canales

      Luis Alfredo Canales

      student•
      hace 3 años

      Gracias.

      Job Forero

      Job Forero

      student•
      hace 3 años

      gracias

    Daniel Romero

    Daniel Romero

    student•
    hace 3 años

    Para comprender este tema, hice una función para una orden dentro de un restaurante.

    function makingOrder(orden) { console.log(`Ready ${orden}`); } function order(orden, callback) { console.log(`Taking order ${orden}`); setTimeout(() => { callback(orden) }, 3000) console.log(`Doing order ${orden}`,); } order('Burger', makingOrder);
    1. La orden se toma, una hamburguesa.
    2. Se empieza a preparar la orden.
    3. La orden está lista. 🍔

    Este pequeño ejercicio me ayudó a entender mejor el callback.

      Porfirio González López

      Porfirio González López

      student•
      hace 3 años

      Ya le entendí el tema de Callback y tu ejemplo es muy bueno.

    Mario José Yanez Sifontes

    Mario José Yanez Sifontes

    student•
    hace 3 años

    Hola amigos, hay una extensión en el VSC que nos permite trabajar con las template literals, se llama Template String Converter, que básicamente podemos estar trabajando con cualquier comillas y la extensión detecta cuando queremos hacer esto ${ } y nos cambia nuestras comillas normales a las comillas francesas automáticamente, así pueden usar sus comillas normales y con esta extensión les ayudará a cambiarlas de forma automática. Es util cuando no las tienen de forma normal en su teclado https://marketplace.visualstudio.com/items?itemName=meganrogge.template-string-converter

    Espero les sea de ayuda, Saludos :D

      Diego Eduardo Téllez Contreras

      Diego Eduardo Téllez Contreras

      student•
      hace 3 años

      Excelente dato! Gracias!

    Salvador Elias Sánchez Acosta

    Salvador Elias Sánchez Acosta

    student•
    hace 3 años

    profesor debo decirle que usted a mejorado su nivel a la hora de explicar la verdad antes me costaba entenderlo pero ahora es mas facil me gusta mucho como explica ahora a mejorado para bien :3

    Stephany Plaza

    Stephany Plaza

    student•
    hace 3 años

    Los callbacks aseguran que una función no se va a ejecutar antes de que se complete una tarea, sino que se ejecutará justo después de que la tarea se haya completado. Nos ayuda a desarrollar código JavaScript asíncrono y nos mantiene a salvo de problemas y errores. Ejemplo: digamos que necesito que en pantalla se muestre un mensaje solo despues que el usuario haga click en un boton, tenemos el boton: <button id="callback-btn"> Haga clic aquí </button> Esta vez veremos un mensaje en la consola solo cuando el usuario haga clic en el botón: document.queryselector( "#callback-btn").addEventListener("click", function() {
    console.log("El usuario ha hecho clic en el botón."); });

    • Como podemos observar, en la linea 1 se selecciona el boto por el metodo query con el ID -En la segunda, se agrega el evento click , toma 2 parámetros. El primero es su tipo, "click", y el segundo parámetro es una función callback, que registra el mensaje en consola ("el usuario ha hecho clic en el boton") cuando el botón es pulsado. En este caso el callback es utilizado para consologuear el mensaje solo despues del click Fuente: freecodecamp
      jorge cartagena

      jorge cartagena

      student•
      hace 3 años

      Gracias 🥲

    Paul Martin Vargas Portugal

    Paul Martin Vargas Portugal

    student•
    hace 3 años

    Una función de callback es una función que se pasa a otra función como un argumento, que luego se invoca dentro de la función externa para completar algún tipo de rutina o acción.

    Ejemplo:

    function saludar(nombre) { alert('Hola ' + nombre); } function procesarEntradaUsuario(callback) { var nombre = prompt('Por favor ingresa tu nombre.'); callback(nombre); } procesarEntradaUsuario(saludar);
    Jose Alejandro Boscan Nava

    Jose Alejandro Boscan Nava

    student•
    hace 3 años

    Les recomiendo esta explicación esta un poco mas sencilla y clara para mi https://www.youtube.com/watch?v=zQVnDW8SaA0&ab_channel=Inform%C3%A1ticaDP Éxito Muchachos!!

    Jesús Álvarez

    Jesús Álvarez

    student•
    hace 3 años

    "One approach to asynchronous programming is to make functions that perform a slow action take an extra argument, a callback function. The action is started, and when it finishes, the callback function is called with the result." Libro Eloquent JavaScript

    Alan Cabrera

    Alan Cabrera

    student•
    hace 3 años

    Si tienes un tecaldo TKL o 60%, en la distribución en inglés, las comillas francesas las puedes hacer con fn + esc `` Espero te sirva, saludos! :)

    Walter Omar Barrios Vazquez

    Walter Omar Barrios Vazquez

    student•
    hace 3 años

    También podemos ejecutar el código desde la Terminal de Code, ubicados dentro de la carpeta /src/callback, con el comando node:

    node index.js

    Código de ejemplo en esta clase:

    //index.js function sum(num1, num2) { return num1 + num2; } function calc(a, b, cb) { return cb(a,b); } console.log(calc(10, -8, sum)); setTimeout(function () { console.log('¡Hola JavaScript!') }, 2000); function gretting(name) { console.log(`¡Hola ${name}!`); } setTimeout(gretting, 5000, 'Walter');
    Paul Martin Vargas Portugal

    Paul Martin Vargas Portugal

    student•
    hace 3 años

    Códigos usados en Clase:

    function sum(num1, num2) { return num1 + num2; } function calc(num1, num2, callback){ return callback(num1, num2); } console.log(calc(2, 2, sum)); setTimeout(function() { console.log(`Hola JavaScript`) }, 5000); function gretting(nombre){ console.log(`Hola ${nombre}`); } setTimeout(gretting, 2000, `Oscar`)
      Andrés Felipe Lopez gomez

      Andrés Felipe Lopez gomez

      student•
      hace 3 años

      Muchas gracias por el aporte

    José Isidro Torres Caldea

    José Isidro Torres Caldea

    student•
    hace 3 años

    Si vienes de Python y entiendes el concepto de "decoradores", esto no se te hará tan complicado. Esto de los Callbacks es un tema un poco enredado, pero te recomiendo practicar con unos 5 o más ejercicios donde te retes a entender la lógica que estás aplicando. 🔥 . Practicando perderás el miedo a código complejo. 💪🏻

      Iván Roberto Rivas Celeita

      Iván Roberto Rivas Celeita

      student•
      hace 3 años

      muy importante esta comparación que hace.

    José Rodriguez Romero

    José Rodriguez Romero

    student•
    hace 3 años

    Claro, ahora si le veo un buen uso.

    const sum = (a, b) => a + b; const res = (a, b) => a - b; const mult = (a, b) => a * b; const div = (a, b) => a / b; const calc = (a, b, operation) => operation(a, b); console.log(calc3(4, 5, sum1));
      Brahayan Ferney González Vanegas

      Brahayan Ferney González Vanegas

      student•
      hace 3 años

      Amigo déjame decirte que tu aporte fue lo único que entendí, después de ver varios videos de apoyo, leer mucho los comentarios, hasta que llego tu comentario... Gracias

      <const sum = (a, b) => a + b; const res = (a, b) => a - b; const mult = (a, b) => a * b; const div = (a, b) => a / b; const calc = (a, b, operation) => operation(a, b); console.log(calc(4, 5, res)); >
    Yerson David Aguilar Martinez

    Yerson David Aguilar Martinez

    student•
    hace 3 años

    Aclaración del min 12:10

    setTimeOut no es un callback, la documentación menciona que callback es la función que se pasa a otra función y setTimeOut no se está pasando a otra función, por lo tanto no es un callback, la función anónima que tiene dentro si lo es.

    Gabriela Ramírez

    Gabriela Ramírez

    student•
    hace 3 años

    Me encanta este tipo de ejercicios, con Run Code, permite entender de manera clara los conceptos

    Joao Ivan Garduño Salgado

    Joao Ivan Garduño Salgado

    student•
    hace 3 años

    RESUMEN: Con estos ejemplos podemos entender que tenemos una serie de elementos dentro del lenguaje de programación que usan por sí mismos el concepto de "callbacks" . Lo que significa es... tener una función que **recibe **otra función para ser ejecutada, según sea el caso.

    Emerson David Cabrera Salas

    Emerson David Cabrera Salas

    student•
    hace 3 años

    Debo admitir que estos conceptos de asincronismo me costaba entenderlos, siempre iba predispuesto a que ere difícil de entender, pero con este curso, la genial explicación de Oscar y los valiosos aportes de la comunidad he aclarado mucho el concepto! Gracias Platzi.

    Tahiris Goliat

    Tahiris Goliat

    student•
    hace 3 años

    Justo necesito colocar un poco de asíncrono a un proyecto existente en php en mi trabajo y me apareció esta recomendación. 😄 Espero poder aplicar los conceptos a lo que necesito.

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads