Un callback explicado como analogía sería: Supongamos que nos encontramos hablando por teléfono. Al estar hablando nos surge una situación por resolver de manera inmediata. Ponemos la llamada en espera, realizamos lo que tenemos que hacer y cuando terminamos, volvemos a la llamada que dejamos en espera. Un callback es una función que será ejecutada cuando una operación asíncrona se haya completado. En el caso de la analogía, seria esa situación urgente, y cuando este hecho, ejecutará el callback.
Me estoy enamorando mas de js con este curso y me atrevo a decir que no seria a si si no fuera por ti jhon. Eres el mejor maestro. Gracias por ayudar a la comunidad de esta manera Bendiciones..
Para que lo entiendan mejor reemplacé el value*value por una funcion anonima que hace lo mismo(les dejo mis comentarios, solo copien y peguen en vs code para que se vea bien): function cuadradoCallback(value,callback){ //recursivadad: una funcion se invoca a si misma dentro de si - eso es lo que me generara el callback //simulara la asincronia - ese ir y consultar una api externa setTimeout(() => { //esto simulara el manejo de ajax o al consumo de datos a traves de un API o de archivos externos callback(value, ()=>{return value*value;}); //callback("valor ingresado","la funcion a ejecutar") }, 0 | Math.random()*1000); //en ese callback es donde se le dice qué tendrá( o sea que parametros) la funcion callback puesta antes como parametro (al inicio) } cuadradoCallback(3,(value,resultado)=>{ console.log("Inicia Callback"); console.log(`Callback ${value}, ${resultado()}`) //se llama a la funcion anonima que contiene value*value almacenada ahora con el nombre de resultado(); });
para no ir cambiandole el número al copiar y pegar y poner 1,2,3,4,5 me cree una variable contador y al final de cada función le mando el contador++ y con eso te evitas el estar modificando los números.
Gracias.. tus anotaciones me sacaron de apuros... no se si fue cosa de percepción pero quede totalmente perdido con el valor que le pasa en callback y resultado.
No logro entender siguiendo linea por linea como es el orden que se ejecuta el código por las funciones anidadas, pero se entiende el conceptooo, muchas gracias jonathan. Este lenguaje es muy completo.
me gusta como esta ordenado el curso jonmircha. muchas gracias por tomarte el tiempo en crear todos estos tutoriales. los estoy siguiendo video x video :)
No sé quienes le dan dislike a tus videos pero los encontraré y los obligaré a quitarlos okno jajaj Es el mejor curso de JS que he encontrado en youtube, udemy y coursera, y es totalmente gratis!
Gracias por ofrecer tu valioso tiempo para enseñarnos a programar Jon! En serio, muchas gracias! Estoy siguiendo detenidamente el curso desde 0, repitiendo los videos cuándo no entiendo algún concepto, pero llevas tan bien la docencia que se entiendo casi todo a la primera!
Jon, buenas noches. Me fué dispendioso poder entender lo de las Callbacks , sobre todo cuando se presenta el Callback Hell, pero afortunadamente por fin me quedó claro y sigo adelante con TU CURSO que es el MEJOR DE TODOS. Gracias Jon. Eres un filántropo. Saludo cordial
Hola Mircha, me ha costado entender en la práctica estos concepto. Espero más adelante los volvamos a retomar a ver si lo puedo ver más claro. Muchas gracias por tu aporte :)
Al principio no le entendí muy bien respecto a la callback, cuando se invoca la funcion y se manda como parametro una arrow function, cuando lo analicé y entendí dije orale!!, que padre no sabía que se podía hacer eso! Además de los buenos memes había visto algunos, pero poco los entendía ahora todo tiene sentido GRACIAS por hacer siempre las clases interesantes
Estoy estudiando en Platzi y acompaño algunos temas con tus videos, explicas genial. Aunque este tema es un poco complejo. Saludos desde Argentina jon, gracias por tu contenido de verdad.
Me gustó el tema, aunque los Callbacks lo entiendo como un mecanismo de "respaldo" es decir, en momentos que ejecute una función asíncrona, habrá un respaldo en caso tal. Tal vez la función que usaste con el SetTimeout no lo he prácticafo lo suficiente pero el concepto me queda claro que es lo importante, thanks Jon.
Recién estoy entrando al concepto de los callback y las promesas, me está resultando algo complicado entender toda la lógica, pero poco a poco lo voy entendiendo, gran video
Gracias JON entendí toda la lógica del porque los callback, como resolver el hecho de que el programa no se frene y al mismo tiempo la importancia de resolver tareas en forma ordenada sin poder saber a ciencia cierta que tiempo demorara cada una en completarse, que seria como generar hilos a mi forma de ver. Lo que aun no me queda claro y espero poder ver la luz al final del túnel mas adelante es como modularizar todas estos pequeños pasos en codigo mas simple, mantenible y que de tener un error se lo puede identificar fácilmente sin caer en el descontrol este de la pirámide. Gracias por tu tiempo.
Esto si es una forma de disfrutar del confinamiento en mi país. Eso sí, hago tantos checks con "console.log" para ver donde y como se mueve el código que me voy a acabar tatuando el "maldito" console.log.
Buenas profe una consulta, en el setInterval porqué tomá el valor random en la disyunción y nunca el numero de la izquierda, he probado poniendo otros numeros y siempre toma el aleatorio. gracias
@@jonmircha ahora viendolo de nuevo, porque | ? el or no se hacia acaso con dos, es decir | | ? entiendo que el cortocircuito toma como false el 0 y por eso iria siempre por el valor de la derecha como en tu ejemplo. pero yo le pongo otros valores como el 2, 5 etc y nunca me los toma
Como siempre, excelente contenido.. No te falta sino buscar plastilina para explicarlo jajajajaja, mil gracias Jon como siempre, bendiciones y nunca cambies!!! 🧙♂️🧙♂️🧙♂️
Este es el primer codigo que me cuesta entender , después de practicarlo lo comprendí de la siguiente manera, haciendo un ejemplo basado en el del video function nameCB(name,callback){ setTimeout(()=>{ callback(`Hola ${name}`); }, 2000); } nameCB("Eloy",(result)=>{ console.log(result) }) La funcion nameCB recibe un valor de tipo String y una funcion , dentro suponemos con el setTimeout que es el tiempo que tomara la peticion , por lo tanto podemos i]gnorarlo y centrarnos en que dentro de la funcion nameCB , se hace un llamado a la funcion que se le sera enviada como argumento , dicha funcion lo que hara es simplemente agregar ela palabra Hola , al valor enviado como argumento a la funcion. Al llamar a la funcion nameCB, esta requiere 2 parametros , 1 es el valor que queremos concatenar y el segundo es la funcion callback PERO (aqui es donde no entendia bien) se le asigna una variable en los parametros , que sera a fin de cuentas la variable que almacenara el resultado que devuelva la callback , por lo que la funcion argumento solo tiene que imprimir dicha variable Mi confusion fue que estaba viendo ese result como un argumento de entrada , siendo que esos parametros son para cachar o recibir los valores que retorne la funcion callback. Si esoty errado en algo por favor corríjanme , por lo pronto , bajo esa logica entiendo el funcionamiento de las callbacks (8 PD: excelente videoo
entiendo casi todo, pero si es algo confuso que todos los llamados a la funcion principal este dentro del primer callback , entonces al volverla a llamar se ejecuta su interior que a su vez tiene una operacion asincrona con el nuevo callback ,pero la funcion no ejecuta ese nuevo callback asincrono hasta que el anterior termine su operacion (creo xd)
Al principio me costo asimilar y entender la Asincronia en JS, todo eso del event loop me confundía. Ahora que estaba viendo esta clase entiendo que las callbacks son las "tareas" (llamemolo asi) que se van apilando para ser ejecutados segun el tiempo que le hemos dado en el "setTimeout". Hasta que no se ejecute una, no podra continuar con la siguiente (eso entiendo yo). Es por eso que se van anidando las funciones una tras otra, ya que si no se hace de esta manera "x" tarea que se tenia que ejecutar de ultimo va terminar ejecutandose de primero y NO se estaria aplicando el asincronismo. ... ESO ENTIENDO YO. :p
Hola, soy nuevo en esto y no entiendo muy bien como hace js para saber cuales serán los valores que tomara para "result" se que los valores que toma son los del callback, pero no se como ni porque, cualquier ayuda lo agradecería.
Hola profesor, su curso está super genial,pero tengo una duda,en la parte del callback donde puso (value, value*value) eso solo se puede poner en una callback por qué lo intentó poner como parámetro en una función normal y me da un error,le agradezco cualquier ayuda
Claro por que la callback se ejecuta en un segundo plano de la primer función en la que se invoca 😉 cuando llegues a los ejercicios del DOM y AJAX entenderás más de las callbacks
Hola , te hago una consulta? Como hago para llamar dentro de un array de objetos a uma propiedad de ese objeto? Por ejemplo tengo un objeto llamado perro h dentro de ese objeto tengo un array y dentro del array una propiedad llamada nombre, se que si hago, un console.log del objeto, me retorna todo el objeto pero cuando le hago el console.log de por ejemplo:perro.nombre me salta error, sera porque esta dentro del arraya? Si es asi como hago para llamar a esa propiedad?
Hola estaba leyendo del libro "Eloquent Javascript", la sección donde habla sobre las funciones de orden superior y callbacks y me quedó una duda: ¿Se pueden pasar parámetros a una función que ya está siendo parámetro de otra función? El libro pone este ejemplo: function repeat(n, action) { for (let i = 0; i < n; i++) { action(i); } } repeat(3, console.log); Pero console.log imprime lo que se declara dentro de repeat o sea el valor de i. Existe una forma de pasarle parámetros en la función action para que imprima otra cosa? Por ejemplo algo así: repeat(3, console.log("¿Hola Jon como andas?")); // este código no funciona Mi intención es reutilizar esta función repeat para hacer todo tipo de tareas por ejemplo: repeat(10, dibujarCuadrados(width, height, color)); repeat(5, enviarNotificacion(mensaje)); Saludos genial curso. Ojalá puedas darme la respuesta ya me dí la cabeza contra la pared unas cuantas veces con este tema, la verdad no lo entiendo jajaj.
Algo importante sobre los callbacks, corríjanme, por favor, si estoy equivocado: Al ver nuestras funciones decuadradoCallback estuve confundido al principio, pero ahora creo que lo visualizo mejor. La callback no es la función cuadradoCallback, sino la función flecha que dentro de su scope ejecuta nuevamente a la función cuadradoCallback(1), no obstante, esta ejecución de cuadradoCallback(1) no es la función callback de cuadradoCallback(0). La función callback para cuadradoCallback(0) es la arrow function que comienza (value, result) => {}. Dentro de su contexto, esta callback function ejecuta nuevamente cuadradoCallback, pero con un nuevo valor para el parámetro value, lo que abre una nueva callback como arrow function que dentro de su scope ejecuta a cuadradoCallback(2) y así hasta la ejecución de la última callback que recibe a 5 como value y no vuelve a ejecutar cuadradoCallback en su scope.
Después de ver el video por un lado solo entiendo que la palabra callback equivale a función recursiva y por otro lado asincronia se refiere a poder ejecutar procesos de manera paralela, no se que tiene que ver una cosa con la otra
no, callback no es lo mismo que recursividad....Recursividad es un metodo en el que una función se llama a si misma DENTRO DE SU PROPIO CUERPO. Callback es una función que SE PASA COMO ARGUMENTO a otra funcion y se llama en algun momento posterior dentro de la funcion principal.
Hola jon , de nuevo te comento , primero pues que buen video!! , solo tengo una duda , porque invocas de nuevo la funcion dentro del cuerpo del callback?? , osea cuando invocas la funcion que tenia por parametro del callback , seria asi "miFuncion(value , ()=>{})" y ahi ya lo invocas , pero luego dentro del 2 argumento (el cuerpo del callback) , vuelves a invocar esa funcio , formando el dichoso callbackhell , pero mi duda es porque lo invocas dentro del 2 parametro , y no afuera ??? espero me puedas resolver , gracias :)
Con este video me pasó lo mismo, como cuando vimos los prototipos y luego el azucar sintactico, espero que las promesas me saquen de estas dudas que tengo JAJJAJAJAJ
Entiendo que lo que conseguimos con callback es que por ejemplo se cargen las imagenes que son interactuables de la pagina,sin que el usuario pueda acceder a ellas, y paralelamente callback premite que se vaya cargando el resto del codigo, es asi?,gracias :)
¿que pluggin usas o como le haces para que todo lo que te sale dentro de las comillas francesas (``) sea de diferentes color? en mi VSC son de un mismo color :c
Gracias por este video! Es de los pocos que vi que me ayudó a entender mejor las callbacks. Pero tengo una pregunta tonta: en el minuto 6, por qué le pasas "value * value" como parámetro a la función? No debería estar entre llaves, con el código que se ejecuta?
no estaria entendiendo de donde saca un resultado la variable resultado :( o porque se almacena en el? (los parametros que se pasan al callback dentro de el setTimeout, pasarian a heredarse a la funcion que llamamos?, ya que no entiendo porque se puede hacer multiplicaciones dentro de esos parametros del call back :(
@@jonmircha si me di cuenta tiempo despues jaja :( estuve bastante tiempo confundido con eso y al final solo es la invocacion de la funcion dentro de si misma jaja gracias Jon¡¡¡¡¡¡
@Estela Marchesani pero al momento de declarar una función flecha anónima esta debe ser asignada a una variable y eso no sucede en el video el profesor lo explica en este video ua-cam.com/video/WuCw9agV3Rc/v-deo.html y tambien el video de funciones
Cuando se termine el curso de JS más o menos que nivel dependiendo claro está de la agilidad mental o lógica de la persona, que nivel tendría en cuanto a JS respecta especificamente teniendo en cuenta que sería una respuesta con sentido figurado incluyendo al sindrome del impostor por igual jajaja, es una duda fuerte para muchas personas que empiezan en esto del desarrollo pero me gustaría saber que tanto se podrá adquirir dejando fuera las investigaciones autodidactas de contenido, espero tu respuesta profe! Mi pregunta no más es por curiosidad esas dudas que surgen de momento sabe XD
Aún no logro comprender del todo la aplicación de un callback en una operación asíncrona como puede ser la llamada a una base de datos. Algo que no entiendo es, por ejemplo, si se quiere hacer la petición a una base de datos y puede llegar a tardar un poco en cargar todos los datos, como es posible que se le diga al programa explícitamente que debe esperar a que todos los datos sean obtenidos y no siga ejecutando las siguientes lineas si js es asíncrono y no bloqueante, algo así como cuando carga una página de ventas de distintos productos, ¿o eso se resuelve solo mediante promesas?. Ayuda por favor, esto es algo que no me deja dormir jaja. Agradecería demasiado un ejemplo con un código sencillo ;).
Una observacion, no se si es valida o no, es que me he fijado que el mecanismo de las callbacks es contrario a las de las funciones normales. Las funciones normales se declaran y luego son llamadas, por otro lado, las callbacks son algo parecido llamadas dentro de la funcion y luego son declaradas dentro de la funcion. Saludos desde la Republica Dominicna.
Recuerda que en JS las funciones son elementos de orden superior, lo que significa que prácticamente puedes hacer cualquier cosa con ellas, definirlas, pasarlas como parámetros (como el caso de las callbacks), retornarlas, asígnarlas en variables, etc
Quizas esta forma me lia muchisimo y no lo acabo de entender del todo. Es mas fácil de esta forma o tengo algo mal? function callback_primera (cb_exponente) { setTimeout(() => { cb_exponente(0) cb_exponente(1) cb_exponente(2) cb_exponente(3) cb_exponente(4) }, Math.random() * 2000) } function cb_exponente (num1) { console.log(num1 ** num1) } callback_primera(cb_exponente)
Saludos Prof, 1. Pero entonces las Callback son bloqueantes, no? 2. Dónde consigo esos iconos tan cheveres que adjunto en la cúspide de la pirámide Callback hell??? 😻
haber si entendi. El temporizador finge ser una llamada a alguna base de datos y hasta no tenerla, no se ejecuta. si pongo un console.log("algo") despues de todo el callback hell este console se ejecutaria primero puesto que esta en el hilo y el callback hell de mientras pasa por la pila de llamadas... ahhh he estado como 3 horas tratando de entender todo esto de asincronia y callback.
Un callback explicado como analogía sería:
Supongamos que nos encontramos hablando por teléfono. Al estar hablando nos surge una situación por resolver de manera inmediata. Ponemos la llamada en espera, realizamos lo que tenemos que hacer y cuando terminamos, volvemos a la llamada que dejamos en espera.
Un callback es una función que será ejecutada cuando una operación asíncrona se haya completado. En el caso de la analogía, seria esa situación urgente, y cuando este hecho, ejecutará el callback.
😉
Tecnicamente se llama princios de la programacion funcional, y javascript la usa en esta ocacion por el tema de asincronita que posee este lenguaje :)
jaja con el ejemplo lo entendi, Gracias Manuel
@@naxxiiimarquez9461 En vez de desenredar, tiraste a enredar el concepto...
@@JardanySvidrigailov en realidad no enredó, claro, si sabes mínimamente que es la programación funcional y la asincronía.
Me estoy enamorando mas de js con este curso y me atrevo a decir que no seria a si si no fuera por ti jhon. Eres el mejor maestro. Gracias por ayudar a la comunidad de esta manera Bendiciones..
Gracias por tus bendiciones :) comparte para llegar a más personas
Yo ya no sé si estoy más enamorado de JS o del profe, jaja... El mejor curso sin duda!!
Para que lo entiendan mejor reemplacé el value*value por una funcion anonima que hace lo mismo(les dejo mis comentarios, solo copien y peguen en vs code para que se vea bien):
function cuadradoCallback(value,callback){
//recursivadad: una funcion se invoca a si misma dentro de si - eso es lo que me generara el callback
//simulara la asincronia - ese ir y consultar una api externa
setTimeout(() => { //esto simulara el manejo de ajax o al consumo de datos a traves de un API o de archivos externos
callback(value, ()=>{return value*value;}); //callback("valor ingresado","la funcion a ejecutar")
}, 0 | Math.random()*1000); //en ese callback es donde se le dice qué tendrá( o sea que parametros) la funcion callback puesta antes como parametro (al inicio)
}
cuadradoCallback(3,(value,resultado)=>{
console.log("Inicia Callback");
console.log(`Callback ${value}, ${resultado()}`) //se llama a la funcion anonima que contiene value*value almacenada ahora con el nombre de resultado();
});
para no ir cambiandole el número al copiar y pegar y poner 1,2,3,4,5 me cree una variable contador y al final de cada función le mando el contador++ y con eso te evitas el estar modificando los números.
Gracias.. tus anotaciones me sacaron de apuros... no se si fue cosa de percepción pero quede totalmente perdido con el valor que le pasa en callback y resultado.
Muchas gracias. Este ejemplo terminó de quitarme muchas dudas... 💟💟
No logro entender siguiendo linea por linea como es el orden que se ejecuta el código por las funciones anidadas, pero se entiende el conceptooo, muchas gracias jonathan. Este lenguaje es muy completo.
me gusta como esta ordenado el curso jonmircha. muchas gracias por tomarte el tiempo en crear todos estos tutoriales. los estoy siguiendo video x video :)
😉👋🏻
Gracias, se me complico pero al final comprendí. A seguir practicando!
😉👋🏻
No he visto curso mas completo de JavaScript que este, felicitaciones Profe Jon y gracias por tan muy buen material
😉🙌
Pedazo de clase. Excelente curso en pleno 2022.
😉🙌🏻
Gracias por esta clase Jon!!! muchas bendiciones!!!
😉🙌🏻
Muchas gracias amigo alfin pude comprender la funcionalidad de los callbacks y el event loop
Excelente!👋🏻😉
La verdad es que lo explicas muy bien, muchisimas gracias Jonathan.
Gracias, saludos
No sé quienes le dan dislike a tus videos pero los encontraré y los obligaré a quitarlos okno jajaj
Es el mejor curso de JS que he encontrado en youtube, udemy y coursera, y es totalmente gratis!
Si por fin he roto esa duda de programacion sincrona y asincrona.... y valla que concurrente es estas clases. Exelente profesor john.
😉👋🏻
Muy bueno Jon, tuve que verlo un par de veces para poder entenderlo bien. Un abrazo grande!
:)
Excelente curso, el mejor de todos, muy buena explicación de los temas y muy bien ordenados, muchos exitos para usted profe !!
Muchas gracias :) comparte para llegar a más personas
Gracias por ofrecer tu valioso tiempo para enseñarnos a programar Jon! En serio, muchas gracias! Estoy siguiendo detenidamente el curso desde 0, repitiendo los videos cuándo no entiendo algún concepto, pero llevas tan bien la docencia que se entiendo casi todo a la primera!
😉👍
Este curso está excelente y lo voy a terminar. Un abrazo desde Colombia
Excelente! Comparte para llegar a más personas
Excelente explicación maestro :D
Gracias. Saludos
Sería bueno un curso de Angular!
En esta clase si me detuve, lo tuve que ver tres veces para entenderlo, gracias profe por este curso
Con mucho gusto
🧙 Buenos videos y muy bien explicados, muchas gracias!!!
Hola, muchas gracias
Jon, buenas noches. Me fué dispendioso poder entender lo de las Callbacks , sobre todo cuando se presenta el Callback Hell, pero afortunadamente
por fin me quedó claro y sigo adelante con TU CURSO que es el MEJOR DE TODOS. Gracias Jon. Eres un filántropo. Saludo cordial
🙌🏻🥰
Como siempre, excelente explicación excelente video 👏👏🙌
Un saludo👋🏻😉
Muy bueno Jon, Muchas gracias!!!
Muchas gracias!
Hola Mircha, me ha costado entender en la práctica estos concepto. Espero más adelante los volvamos a retomar a ver si lo puedo ver más claro. Muchas gracias por tu aporte :)
👋🏻😉
Al principio no le entendí muy bien respecto a la callback, cuando se invoca la funcion y se manda como parametro una arrow function, cuando lo analicé y entendí dije orale!!, que padre no sabía que se podía hacer eso!
Además de los buenos memes había visto algunos, pero poco los entendía ahora todo tiene sentido GRACIAS por hacer siempre las clases interesantes
;)
un grande amigo!
Muchas gracias!!👋🏻😉
Master! Mis respetos, de verdad que te felicito por el dominio del tema
Muchas gracias!
sept 11 1969**sept 29 2023
gracias excelente curso
felicidades John Mircha
👋🏻😉
Excelente como siempre Jon, aprender contigo es un placer, mil gracias!!!!!!
Excelente vídeo!
😉👋🏻
excelente contenido gracias
Gracias. Saludos
Estoy estudiando en Platzi y acompaño algunos temas con tus videos, explicas genial. Aunque este tema es un poco complejo. Saludos desde Argentina jon, gracias por tu contenido de verdad.
😉👌🏻
@@jonmircha El profe del 2020 si estaba más pro, por qué ahora se puso en modo hippie?
Está muy bueno el curso gracias jonmircha, simplemente un crack jaja 🦊
Muchas gracias!
Me gustó el tema, aunque los Callbacks lo entiendo como un mecanismo de "respaldo" es decir, en momentos que ejecute una función asíncrona, habrá un respaldo en caso tal. Tal vez la función que usaste con el SetTimeout no lo he prácticafo lo suficiente pero el concepto me queda claro que es lo importante, thanks Jon.
😉👋🏻
Recién estoy entrando al concepto de los callback y las promesas, me está resultando algo complicado entender toda la lógica, pero poco a poco lo voy entendiendo, gran video
🤓👍🏻
Excelente!
Gracias!
se me hizo mas facil entender esto que la asincronia y event loop ahhaha, pero ya entendi, muchas gracias!
👋🏻😉
Ídolo!!!!!!
super claro profe! gracias
😉👍🏻
Gracias Jon, excelente vídeo, aquí si entendí con el ejercicio el Callback.
Que bien :)
gracias
De nada
Gracias JON entendí toda la lógica del porque los callback, como resolver el hecho de que el programa no se frene y al mismo tiempo la importancia de resolver tareas en forma ordenada sin poder saber a ciencia cierta que tiempo demorara cada una en completarse, que seria como generar hilos a mi forma de ver. Lo que aun no me queda claro y espero poder ver la luz al final del túnel mas adelante es como modularizar todas estos pequeños pasos en codigo mas simple, mantenible y que de tener un error se lo puede identificar fácilmente sin caer en el descontrol este de la pirámide. Gracias por tu tiempo.
Podrías resolverlo con funciones asíncronas, cuando lleguemos a AJAX lo entenderás 😉
Excelente clase, muchas gracias!
Que buena explicacion , pero como me costo entenderlo no me carburaba el cerebro jaja , excelente profe!
Excelente👋🏻😉
me ayudo mucho
😉👍🏻
Excelente contenido. Espero que tu canal crezca. Sigue así. Saludos desde Arg.
Gracias! Saludos!
Excelente clase. muchas gracias por el aporte.
woow muy bien explicado , gracias por este gran contenido
De nada, comparte para llegar a más personas
@@jonmircha claro , lo estoy haciendo de hecho
el mejor profe de programacion de habla hispana 🦾
🙈🙌🏻
@@jonmircha ☺
Gracias Jon, muy buen video extensamente preciso para entender este tema 👏
Gracias, excelente clase.
Gracias profe.. entendido!!... entonces me faltan 7$ para el taco.. Gracias profe
😉👋🏻
Esto si es una forma de disfrutar del confinamiento en mi país. Eso sí, hago tantos checks con "console.log" para ver donde y como se mueve el código que me voy a acabar tatuando el "maldito" console.log.
jajajaja
Buenas profe una consulta, en el setInterval porqué tomá el valor random en la disyunción y nunca el numero de la izquierda, he probado poniendo otros numeros y siempre toma el aleatorio. gracias
por el corto circuito que hace el |
@@jonmircha ahora viendolo de nuevo, porque | ? el or no se hacia acaso con dos, es decir | | ? entiendo que el cortocircuito toma como false el 0 y por eso iria siempre por el valor de la derecha como en tu ejemplo. pero yo le pongo otros valores como el 2, 5 etc y nunca me los toma
Como siempre, excelente contenido.. No te falta sino buscar plastilina para explicarlo jajajajaja, mil gracias Jon como siempre, bendiciones y nunca cambies!!! 🧙♂️🧙♂️🧙♂️
🤗
Ty Jhon♥
Hay algun video donde expliques el tema de la recursividad ?
Aún no
Este es el primer codigo que me cuesta entender , después de practicarlo lo comprendí de la siguiente manera,
haciendo un ejemplo basado en el del video
function nameCB(name,callback){
setTimeout(()=>{
callback(`Hola ${name}`);
},
2000);
}
nameCB("Eloy",(result)=>{
console.log(result)
})
La funcion nameCB recibe un valor de tipo String y una funcion , dentro suponemos con el setTimeout que es el tiempo que tomara la peticion ,
por lo tanto podemos i]gnorarlo y centrarnos en que dentro de la funcion nameCB , se hace un llamado a la funcion que se le sera enviada como argumento , dicha funcion lo que hara es simplemente agregar ela palabra Hola , al valor enviado como argumento a la funcion.
Al llamar a la funcion nameCB, esta requiere 2 parametros , 1 es el valor que queremos concatenar y el segundo es la funcion callback PERO (aqui es donde no entendia bien) se le asigna una variable en los parametros , que sera a fin de cuentas la variable que almacenara el resultado que devuelva la callback , por lo que la funcion argumento solo tiene que imprimir dicha variable
Mi confusion fue que estaba viendo ese result como un argumento de entrada , siendo que esos parametros son para cachar o recibir los valores que retorne la funcion callback.
Si esoty errado en algo por favor corríjanme , por lo pronto , bajo esa logica entiendo el funcionamiento de las callbacks (8
PD: excelente videoo
👍🏻
entiendo casi todo, pero si es algo confuso que todos los llamados a la funcion principal este dentro del primer callback ,
entonces al volverla a llamar se ejecuta su interior que a su vez tiene una operacion asincrona con el nuevo callback ,pero la funcion no ejecuta ese nuevo callback asincrono hasta que el anterior termine su operacion (creo xd)
Pregunta seria: No entiendo este símbolo | en el minuto 5:14 ¿Qué puede significar? ¿Es una expresión regular?
Me falto otro | es un or || 🤭
Al principio me costo asimilar y entender la Asincronia en JS, todo eso del event loop me confundía. Ahora que estaba viendo esta clase entiendo que las callbacks son las "tareas" (llamemolo asi) que se van apilando para ser ejecutados segun el tiempo que le hemos dado en el "setTimeout". Hasta que no se ejecute una, no podra continuar con la siguiente (eso entiendo yo). Es por eso que se van anidando las funciones una tras otra, ya que si no se hace de esta manera "x" tarea que se tenia que ejecutar de ultimo va terminar ejecutandose de primero y NO se estaria aplicando el asincronismo. ... ESO ENTIENDO YO. :p
😉👍🏻
super bien
utilizas alguna extension del programa para que el código se tabule solo?
Revisa mi curso de VSCode ahí esta toda mi configuración
Yo tampoco entendi nadita pero en otros lados dicen que un callback solo es una funcion que recibe otra funcion como parametro
Entonces si lo entendiste
Hola, soy nuevo en esto y no entiendo muy bien como hace js para saber cuales serán los valores que tomara para "result" se que los valores que toma son los del callback, pero no se como ni porque, cualquier ayuda lo agradecería.
Sigue con el curso, cuando llegues a la parte de AJAX ahí se vera todo lo de asincronía ;)
Esto anuncio me gusto 4:25
Hola profesor, su curso está super genial,pero tengo una duda,en la parte del callback donde puso (value, value*value) eso solo se puede poner en una callback por qué lo intentó poner como parámetro en una función normal y me da un error,le agradezco cualquier ayuda
Claro por que la callback se ejecuta en un segundo plano de la primer función en la que se invoca 😉 cuando llegues a los ejercicios del DOM y AJAX entenderás más de las callbacks
Hola , te hago una consulta? Como hago para llamar dentro de un array de objetos a uma propiedad de ese objeto? Por ejemplo tengo un objeto llamado perro h dentro de ese objeto tengo un array y dentro del array una propiedad llamada nombre, se que si hago, un console.log del objeto, me retorna todo el objeto pero cuando le hago el console.log de por ejemplo:perro.nombre me salta error, sera porque esta dentro del arraya? Si es asi como hago para llamar a esa propiedad?
En vez de usar la sintaxis de punto usa la sintaxis de corchetes
osea que al hacer un
boton.addEventListener('click' , () => {
alert("EJECUTASTES UN CALLBACK");
});
eso es un callback tambien?
Sí lo manejadores de eventos son callbacks
Hola estaba leyendo del libro "Eloquent Javascript", la sección donde habla sobre las funciones de orden superior y callbacks y me quedó una duda: ¿Se pueden pasar parámetros a una función que ya está siendo parámetro de otra función? El libro pone este ejemplo:
function repeat(n, action) {
for (let i = 0; i < n; i++) {
action(i);
}
}
repeat(3, console.log);
Pero console.log imprime lo que se declara dentro de repeat o sea el valor de i. Existe una forma de pasarle parámetros en la función action para que imprima otra cosa? Por ejemplo algo así:
repeat(3, console.log("¿Hola Jon como andas?")); // este código no funciona
Mi intención es reutilizar esta función repeat para hacer todo tipo de tareas por ejemplo:
repeat(10, dibujarCuadrados(width, height, color));
repeat(5, enviarNotificacion(mensaje));
Saludos genial curso. Ojalá puedas darme la respuesta ya me dí la cabeza contra la pared unas cuantas veces con este tema, la verdad no lo entiendo jajaj.
En los ejercicios de AJAX vemos ejemplos de lo que comentas, paciencia ;)
Algo importante sobre los callbacks, corríjanme, por favor, si estoy equivocado:
Al ver nuestras funciones decuadradoCallback estuve confundido al principio, pero ahora creo que lo visualizo mejor. La callback no es la función cuadradoCallback, sino la función flecha que dentro de su scope ejecuta nuevamente a la función cuadradoCallback(1), no obstante, esta ejecución de cuadradoCallback(1) no es la función callback de cuadradoCallback(0). La función callback para cuadradoCallback(0) es la arrow function que comienza (value, result) => {}. Dentro de su contexto, esta callback function ejecuta nuevamente cuadradoCallback, pero con un nuevo valor para el parámetro value, lo que abre una nueva callback como arrow function que dentro de su scope ejecuta a cuadradoCallback(2) y así hasta la ejecución de la última callback que recibe a 5 como value y no vuelve a ejecutar cuadradoCallback en su scope.
👋🏻😉
Hola en el minuto 5:38, que significa este simbolo | despues del 0?
or pero me falto el otro pipe 🤭
👏👏👏 🙏🙏🙏
👋🏻😉
Después de ver el video por un lado solo entiendo que la palabra callback equivale a función recursiva y por otro lado asincronia se refiere a poder ejecutar procesos de manera paralela, no se que tiene que ver una cosa con la otra
no, callback no es lo mismo que recursividad....Recursividad es un metodo en el que una función se llama a si misma DENTRO DE SU PROPIO CUERPO. Callback es una función que SE PASA COMO ARGUMENTO a otra funcion y se llama en algun momento posterior dentro de la funcion principal.
Hola jon , de nuevo te comento , primero pues que buen video!! , solo tengo una duda , porque invocas de nuevo la funcion dentro del cuerpo del callback?? , osea cuando invocas la funcion que tenia por parametro del callback , seria asi "miFuncion(value , ()=>{})" y ahi ya lo invocas , pero luego dentro del 2 argumento (el cuerpo del callback) , vuelves a invocar esa funcio , formando el dichoso callbackhell , pero mi duda es porque lo invocas dentro del 2 parametro , y no afuera ??? espero me puedas resolver , gracias :)
Las callbacks serían una manera de hacer sincronía dentro de la asincronía?
😅
como hago para comentar varias líneas en Javascript? pense que era control + k + u
yo lo hago con alt + shif + s
@@jonmircha gracias, pero no me sirvió, pero ya lo encontré
Con este video me pasó lo mismo, como cuando vimos los prototipos y luego el azucar sintactico, espero que las promesas me saquen de estas dudas que tengo JAJJAJAJAJ
👋🏻😉
Entiendo que lo que conseguimos con callback es que por ejemplo se cargen las imagenes que son interactuables de la pagina,sin que el usuario pueda acceder a ellas, y paralelamente callback premite que se vaya cargando el resto del codigo, es asi?,gracias :)
:)
👏👏👏
👋🏻😉
¿que pluggin usas o como le haces para que todo lo que te sale dentro de las comillas francesas (``) sea de diferentes color? en mi VSC son de un mismo color :c
jonmircha.com/vscode
Gracias por este video! Es de los pocos que vi que me ayudó a entender mejor las callbacks. Pero tengo una pregunta tonta: en el minuto 6, por qué le pasas "value * value" como parámetro a la función? No debería estar entre llaves, con el código que se ejecuta?
no es necesario, antes de pasar el parámetro hace la operación
no estaria entendiendo de donde saca un resultado la variable resultado :( o porque se almacena en el? (los parametros que se pasan al callback dentro de el setTimeout, pasarian a heredarse a la funcion que llamamos?, ya que no entiendo porque se puede hacer multiplicaciones dentro de esos parametros del call back :(
serian como representativas donde cada posición se hereda a la los parámetros del la función en si ?) algo asi?
No se hereda, se pasa como argumento de la función
@@jonmircha si me di cuenta tiempo despues jaja :( estuve bastante tiempo confundido con eso y al final solo es la invocacion de la funcion dentro de si misma jaja gracias Jon¡¡¡¡¡¡
Comentado, gran contenido :v xd
Porque el parámetro callback en la función cuandrocallback es una función? si no lleva la palabra clave function y tampoco es una arrow function
por que recibe una función, simplemente por eso
@Estela Marchesani pero si empezó a crear la arrow function en el minuto 6:38 no debería tener un nombre dicha arrow function?
@Estela Marchesani pero al momento de declarar una función flecha anónima esta debe ser asignada a una variable y eso no sucede en el video el profesor lo explica en este video ua-cam.com/video/WuCw9agV3Rc/v-deo.html y tambien el video de funciones
Como se hacen los emojis en visual studio? ohhh
tecla de windows + .
En resumen: una callback es una funcion pasada como parametro a otra funcion. 😁👍
👍🏻
Se me hizo un poco difícil entender la estructura del ejemplo...pero ya está. Una función adentro de otra y le mandamos un setTimeout(? jaj x)
Cuando se termine el curso de JS más o menos que nivel dependiendo claro está de la agilidad mental o lógica de la persona, que nivel tendría en cuanto a JS respecta especificamente teniendo en cuenta que sería una respuesta con sentido figurado incluyendo al sindrome del impostor por igual jajaja, es una duda fuerte para muchas personas que empiezan en esto del desarrollo pero me gustaría saber que tanto se podrá adquirir dejando fuera las investigaciones autodidactas de contenido, espero tu respuesta profe! Mi pregunta no más es por curiosidad esas dudas que surgen de momento sabe XD
Tendrías que ser un Junior Avanzado
@@jonmircha Alv que potente :0, mas ganas aun de seguir con tu curso :D
Aún no logro comprender del todo la aplicación de un callback en una operación asíncrona como puede ser la llamada a una base de datos. Algo que no entiendo es, por ejemplo, si se quiere hacer la petición a una base de datos y puede llegar a tardar un poco en cargar todos los datos, como es posible que se le diga al programa explícitamente que debe esperar a que todos los datos sean obtenidos y no siga ejecutando las siguientes lineas si js es asíncrono y no bloqueante, algo así como cuando carga una página de ventas de distintos productos, ¿o eso se resuelve solo mediante promesas?. Ayuda por favor, esto es algo que no me deja dormir jaja. Agradecería demasiado un ejemplo con un código sencillo ;).
Cuando llegués a la sección de AJAX y APIs lo entenderás mejor 😉
Una observacion, no se si es valida o no, es que me he fijado que el mecanismo de las callbacks es contrario a las de las funciones normales. Las funciones normales se declaran y luego son llamadas, por otro lado, las callbacks son algo parecido llamadas dentro de la funcion y luego son declaradas dentro de la funcion.
Saludos desde la Republica Dominicna.
Recuerda que en JS las funciones son elementos de orden superior, lo que significa que prácticamente puedes hacer cualquier cosa con ellas, definirlas, pasarlas como parámetros (como el caso de las callbacks), retornarlas, asígnarlas en variables, etc
@@jonmircha Gracias por la aclarición 👍
Entendi que es un callback, pero no entiendo como llevarlo a codigo, como usarlo
Quizas esta forma me lia muchisimo y no lo acabo de entender del todo. Es mas fácil de esta forma o tengo algo mal?
function callback_primera (cb_exponente) {
setTimeout(() => {
cb_exponente(0)
cb_exponente(1)
cb_exponente(2)
cb_exponente(3)
cb_exponente(4)
}, Math.random() * 2000)
}
function cb_exponente (num1) {
console.log(num1 ** num1)
}
callback_primera(cb_exponente)
👨
👋🏻😉
Saludos Prof,
1. Pero entonces las Callback son bloqueantes, no?
2. Dónde consigo esos iconos tan cheveres que adjunto en la cúspide de la pirámide Callback hell??? 😻
No, no son bloqueantes se ejecutan en 2 plano, emojipedia.org/
haber si entendi. El temporizador finge ser una llamada a alguna base de datos y hasta no tenerla, no se ejecuta. si pongo un console.log("algo") despues de todo el callback hell este console se ejecutaria primero puesto que esta en el hilo y el callback hell de mientras pasa por la pila de llamadas... ahhh he estado como 3 horas tratando de entender todo esto de asincronia y callback.
Sí, el temporizador es una simulación a una solicitud como bien lo comentas
que significa el | en el minuto 5:14?
Es un operador de corto circuito.
sea callback hell o no para mi las callback son un infierno jejje no entendi nada jejejej
JAJSRJAHSARHHM;UHKE%DFGKERGVB (Ayudando al algoritmo de UA-cam para que aparescan tus videos jon)
:)