Arrow Functions, Promesas y Parámetros en objetos
Clase 4 de 14 • Curso de ECMAScript 6+
Contenido del curso
Clase 4 de 14 • Curso de ECMAScript 6+
Contenido del curso
Pedro Rafael Chacon
Luis Angel Rojas Estevez
Johan Avila
Abril Darynka Tapia Sosa
Nicolas de Fex
José Gregorio Block
Eriksen Lezama
Victor Baruch Pazaran Jaimes
Andrés Felipe Lopez gomez
Jesús Miguel Quinto Teran
Jimmy Buriticá Londoño
Fabian Andres
Jefferson Andres Espejo Goez
Wilson Delgado
José Gregorio Block
Jair Neri
Carlos Enrique Ramírez Flores
Adriana Gómez Hinojosa
Diego Alejandro Zacarias
Oscar Barajas Tavares
Juan Christopher
Juan Osio
Julio Manuel Valdés Alcántara
Joel Vicente Nieto Gómez
Nathaly Stefani Riaño Bejarano
Darío Guzmán Murúa
Ramon Alejadro Ochoa Medez
Jairo Niño
José Gregorio Block
Rebeca Gonzalez Erazo
Renato Maximiliano Rivera Abad
Emanuel Schemberger
Yancarlo Urdaneta
Usuario anónimo
Leonardo Bravo Kunkel
Juan Pablo Celiz
Leonardo Bravo Kunkel
Belen Gabriela Chura Flores
Carlos Eduardo Gomez García
Ian Vassallo
Brandon Argel Verdeja Domínguez
Héctor Eduardo López Carballo
Luis Lira
Jhonathan Alfonso
Gabriel Quevedo
Diana Carolina Torres Castaño
Joel Bello
Oscar Barajas Tavares
Geovanny Álvarez
Santiago Lopera Naranjo
Alex hernandez mitre
Pablo Cesar Acosta Paredes
Fabio Alejandro Ramirez Saavedra
Alejandro Giraldo Londoño
Expectativa: venir a la clase y entender conceptos Realidad me voy con los conceptos y con 10 plugins nuevos para VSCode.
I want it all...
🤣🤣🤣
Parece chiste pero es anécdota
jajaja yo mejor lo corro con node o con una pagina en blanco
!Mis apuntes
tus apuntes? top 10.. crack
#Excelente!
Quizá se mencione en otros cursos de JavaScript pero para los que aún no lo sepan, algo que caracteriza a las arrow functions es que no tienen un this vinculado, es decir, que el this pasa a ser el del contexto que contiene a la arrow function. Lo mismo para el objeto arguments, que no es tan común como el this, sería un objeto con los argumentos del contexto superior. Esto aclara algunos problemas que hayan podido tener al hacer uso del this y arrow functions, el cuál fue mi caso en una oportunidad. También suelen preguntarlo en entrevistas.
Es bueno saberlo, gracias por el tip
igualmente esto lo explica un poco mas en detalle el profe zacha en el curso de fudamentos de JS para los que quieran verlo mas a detalle
Muchas gracias
También puedes usar la desestructuración sobre los parámetros de la función:
const persona = { nombre: 'Jesus', apellido: 'Quinto', edad: 23 } function saludar({ nombre, apellido, edad }) { const saludo = `Hola!, mi nombre es ${nombre} ${apellido} y tengo ${edad} años, saludos desde Venezuela`; console.log(saludo); } saludar(persona);
Muy interesante
No sabia que se podia asi, muchas gracias
Hola. Dejo mis aportes (largos, lo sé :( )
gracias, muy buen aporte
Gracias
newPromise()
resolve() - comportamiento al cumplir la promesareject() - comportamiento al fallar la promesa.then (⇒) - obtener el valor del resolve.error(⇒) - obtener el valor del reject()Gracias!
Me parece que en el .error te confundiste con .catch, este es el que obtiene el valor del reject
me parece oportuno dejar este aporte para complementar la clase. anonymous function !== lambda expression
anonymous function Es una funcion que no tiene nombre
lambda expression son funciones utilizadas como data, se envian como parametros a otra funcion o se retornan como producto de una funcion.
lo mas importante, las lambda expression no necesariamente son funciones anonimas y viceversa
Tus aportes siempre complementan las clases!
Gracias, por el aporte.
Esta vez fueron muchos apuntes 😅
Que programa usas para tomar tus apuntes?
El usa Notion.
/** * Parameters in Objects */ let name = 'Oscar'; let age = 32; const obj = { name: name, age: age }; console.log('Before ES6 -> ', obj); // es6 const objES6 = { name, age }; console.log(`After ES6 -> `, objES6); /** * Arrow Functions */ const names = [ { name, age }, { name: 'Yesica', age: 27 } ]; let listOfNames = names.map(function(item) { console.log('Before ES6 -> ', item.name); }); // es6 let listOfNamesES6 = names.map(item => console.log(`After ES6 -> ${item.name}`)); /** * Promises */ const helloPromise = foo => { return new Promise((resolve, reject) => { if (foo) { resolve('Hey!'); } else { reject('Upss!'); } }); }; const foo = false; helloPromise(foo) .then(response => console.log('response -> ', response)) .then(() => console.log('message -> Hello World!')) .catch(error => console.log('error -> ', error));
¡Muchas gracias por el aporte!
thxs
Como punto agregado a la clase, las funciones flechas heredan el this del scope del bloque en el que son declaradas. A diferencia de las funciones regulares donde el this tiene el scope de la función. Ejemplo.
{ this.a = 'Hola'; const fun1 = () => { console.log(this.a) // this.a es "Hola" } const fun2 = function() { console.log(this.a); // this.a es undefined } fun1(); // Output: Hola fun2(); // Output: undefined }
Mas información aquí: https://www.tutorialspoint.com/difference-between-regular-functions-and-arrow-functions-in-javascript
#Gracias
Gracias por tu aporte. Justo esto estaba buscando para mis apuntes. Gracias! Las arrow functions solucionaron el problema que había con el this, ya que antes la forma era asignarlo en una variable y enviarlo como parámetro dentro de la función. De esta manera no se perdía el contexto.
Las únicas de las promesas en las que creo, son las de JS:
const helloPromise = () => { return new Promise((resolve, reject) => { if (false) { resolve('hey') } else { reject('Ups') } }) } helloPromise() .then( response => console.log(response)) .catch(error => console.log(error))```
me cuesta entenderle a oscar, siento que tira ejemplos sin explicar bien parte por parte del ejemplo y luego sigue tirando ejemplos y los explica menos, alguien me recomienda un material o curso para complementar?
Si necesitas complementar la informacion sobre arrow functions, te recomiendo la documentación de MDN.
Siento lo mismo sobre todo con las promesas (creo que debo tomar el curso de V8 haha), pero si quedaste un poco "colgado" sobre el tema de como usar las promesas en ES6, te recomiendo el curso de V8, en ese curso explican todo sobre el asincronismo y todo lo necesario para poder entender algunos temas un poco más complejos que no cubre el curso de Javascript básico. Saludos Crack!!
Es muy importante los que estás explicando de arrow function, pero siento que vas muy rápido bro. Las promesas las entendí a medias. Espero que alguien me pueda apoyar en explicármelas.
Hola! En sí una arrow function es una función anónima, es decir, reacciona a su código anterior realizando el siguiente. Análogamente es similar al símbolo matemático "entonces", cumpliendo una tarea similar aquí en JS.
Por ejemplo, supongamos que pude guardar el "peso" en la variable "miPeso" y deseo mostrarlo en consola.
miPeso = peso => console.log(miPeso)
Espero te haya podido ayudar, en caso de que no me haya sabido explicar bien te dejo un link donde explican las funciones anónimas de manera clara https://riptutorial.com/es/javascript/example/726/funcion-anonima
Si lo supiste explicar bien, muchas gracias.
Hola a todos!
Es posible que en el minuto 7:44 Oscar haya dicho esto? _"Javascript no es un lenguaje que es sincrónico que puede ejecutar muchos elementos al mismo tiempo, sino que va ejecutando elemento por elemento." _
Tenia entendido que justamente SI era un lenguaje sincrónico. Dejo esta duda por si le surge a alguno mas. Gracias y saludoos :)
¡Hola! Sí, se confundió, quiso decir "Javascript no es un lenguaje que es asincrónico..." estás en lo correcto, JavaScript en sincrónico ^^
Sí jaja, puedes econtrar información que lo avala como haciendo la búsqueda:
`Javascript is a single threaded language?`
¿Por qué me sale tachado name? 🤔
Hola! Podría ser una extensión que tienes instalada? No ubico que haga eso vscode por sí solo. Lo intenté en el mío y también me salió. Dice algo de typescript, pero no me parece que tenga sentido. Está raro, jaja.
Es parte del linter para indicar que es redundante ponerlo de esa forma.
Por fin entendí lo de las promesas :D
Ejoooo eeejooooo!!! :DDDDD Felicitaciones ^^
🎉🎉🎉🎉🎉🎉🎉🎉🤳🤳🤳🤳🐱👤🐱👤🐱👤🐱👤🐱👤🐱👤🐱🏍🐱🏍🐱🏍🐱🏍🐱🏍🐱🏍
Para ser sincero, estoy entendiendo JavaScript gracias a este curso
Esa es la finalidad que puedas aprender cada vez mejor como funciona JS :D
Si alguien se lo pregunta este es el tema que el utiliza SynthWave ’84
Gracias, lo estaba buscando!
buen theme.
También algo a tener en cuenta se puede aplicar los operadores ternarios de manera a simplificar, saludos !!! ; //ArrowFunction const names= [ {name:"Alejandro",nick:"Alejandro-sin"}, {name:"etrx",nick:"xrte"} ] //Antes se iteraba mediante map y se usaban funciones anónimas. let lista = names.map(function(item){ console.log(item.names); }) //Ahora esta función anónima se reemplaza por => un arrow, flecha que apunta a. let listaES6 = names.map(item =>console.log(item.names));{ } const listaES6_const = (name, nick) =>{ ... } const listaES6_const_único_elemento = name =>{ ... } const square = num => num *num; // Se evita el uso de return. // Promesas, sirven para trabajar el asincronismo y hacer peticiones a una API. //Cómo su nombre indica dice que algo va a suceder. const helloPromise =() =>{ return new Promise ((resolve,reject)=>{ if(true){ resolve('Resuelto'); } else { reject('Rechazado'); } }) } helloPromise() .then(Response => console.log(Response)) .catch(error=> console.log(error));