logo

midulive


Transcribed podcasts: 605
Time transcribed: 13d 3h 7m 36s

This graph shows how many times the word ______ has been mentioned throughout the history of the program.

Dice, el JavaScript más moderno que conozco, el más moderno, dice que JavaScript ha cambiado drásticamente últimamente, que a ver, ahora veremos que tampoco es tan moderno lo que escribe aquí, pero bueno, más o menos para que, no sé, para repasar un poco, me parece muy interesante porque a lo mejor hay veces que la gente, sí, veo clases, claro, hombre, JavaScript tiene clases, total, que dice, bueno, he hecho como un ejemplo con código con todos los conceptos que acaba de aprender y que, bueno, que no está seguro si es una buena práctica, pero que ha hecho esto, ¿no?
Entonces, he pensado, ah, pues lo vamos a poner, lo vamos a poner aquí en Rungeers mismo y lo vamos a revisar un poquito, ¿vale? Voy a poner a ver la disposición en vertical, ¿vale? Esto hace un montón de cosas, como podéis ver, bueno, un montón de cosas, tiene una clase y lo que pasa es que está ejecutando por aquí esto, esto lo vamos a dejar por aquí, por ahora, ¿vale? Para que no comente nada, vamos a hacer esto así y vamos a ir repasando un poco las cosillas que va diciendo.
Que a mí me ha sorprendido un poco el artículo, pero, pero bueno, me ha sorprendido bastante, me ha sorprendido bastante, vale, vamos a ir revisando, ¿vale?
Lo primero que él destaca en el artículo es no tener semicolons, que me ha dejado un poco loco, dice, dice, a ver si sale por aquí, dice, no semicolons, espera, ¿cómo?
No me estoy quejando, pero me olvidaba y ahora no me preocupa, Steel, esto ha pasado toda la vida, ¿eh? Esto no es una cosa nueva de JavaScript, esto de no semicolons, esto no es una cosa nueva para nada.
Me ha sorprendido mucho que empiece por esto, porque que no haya semicolons no es una cosa que ahora se ha añadido en JavaScript, pero es verdad que quien lo popularizó mucho fue Standard.js,
pero es que Standard.js tiene muchos años, muchos años, pero bueno, desde toda la vida han sido opcionales, aunque luego obligatorios y ya está, obligatorios porque el intérprete al final los añade automáticamente.
Vale, luego, clases. No mal añadido, the prototype stuff was awful, ¿vale? El tema de hacer prototypes la verdad es que era un poco rollo y las clases ha sido azúcar sintáctico encima del prototype y queda mucho más fácil de entender,
aunque realmente no sean clases, pero bueno, semicolons got, bueno, aquí la gente picándose ya con los semicolons. Eso es de toda la vida, sí, sí, totalmente, ¿eh? Por eso digo que me ha sorprendido que empezase con los no semicolons.
HombreoRevolutionaryBasilo86, de Sora115, gracias por suscribiros, muchas gracias. Y gracias también a FreakFreak, que renuevo suscripción, a SMCabello12, Midu, ah, MDN está más bonita ahora, vale.
TellMeAlex, también gracias por renueva suscripción, Darang también, Valinorja, muchas gracias a todos. Vale, luego, AsyncMethods, vale, esto sí que es bastante nuevo y supongo que se refiere a este,
a métodos en una clase que puedan ser asíncronas. Esto sí que es una cosa que, bueno, a ver, no es que sea súper nuevo, pero por si no lo sabíais, pues métodos asíncronos.
Creación de promesas. Esto es una cosa que tampoco es que sea muy nueva, pero hay muy poca gente que sabe que se puede hacer esto. Esto, esto de aquí.
Y esto es súper importante, o sea, esto es la clave para un montón de cosas. Básicamente que tú puedes crear una promesa.
No es nuevo, pero es interesante, ¿no? Por ejemplo, a la hora de hacer envolver, puedes envolver cualquier cosa con una promesa.
Puedes envolver, digamos, mira, puedes hacer el típico delay, le pones aquí los milisegundos. Puedes envolver el setTimeout en una promesa, lo cual está súper bien.
¿Y cómo lo puedes hacer? Pues con el return, new promise, no sé qué, hacer setTimeout. Y aquí, pues, bueno, esto sería el callback, callback, ms.
Ah, bueno, espérate, claro, tendríamos que hacer esto así. Le pasamos aquí el callback y lo que hacemos es resolverlo y ya lo tendríamos, ¿vale?
Con esto estaríamos como envolviendo este delay y le ponemos aquí, por ejemplo, hola, midu, y le decimos que lo ejecute después de un segundo.
¿Vale? Pues, ¿ves? Después de un segundo, primero ha devuelto la promesa y luego hola, midu.
¿Cómo podemos hacer esto? Solo podemos utilizar el return, o sea, tenemos que crear una promesa porque si no, no hay otra forma.
Y esto, como devuelve una promesa, pues, ya aquí puedes hacer un .den. Esto está súper chulo porque muchas veces...
A ver, esto en Node.js ya no se lleva tanto. ¿Por qué? Porque muchas de las bibliotecas que tienen Node.js ya se han pasado a promesas, ¿vale?
Pero esto es una cosa que a veces se hacen preguntas en entrevistas técnicas, ¿no?
¿Cómo pasarías un callback a una promesa? Pues, mira, esta sería la técnica que tienes que utilizar.
De return, new promise, resolve, y este... Yo he puesto el ejemplo del setTimeout, pero no hace falta que sea con un setTimeout.
Puede ser con lo que sea. Así que ya sabéis cómo se haría esto, ¿vale?
Entonces, es muy útil saber devolver una promesa. También hay veces que quieres devolver, quieres crear una función que es síncrona para que sea asíncrona.
¿Cuándo puede pasar esto? Pues, imaginad que tenéis la posibilidad de tener una información en el local storage o en una base de datos, ¿vale?
Entonces, la base de datos, imaginad que hacéis getData de la base de datos y hacéis returnDB, find, no sé qué, yo qué sé, user, where, id, es id, ¿vale?
Vamos a poner esto ahí. Esto ni siquiera con el async, ¿no? ¿Y esto qué devolvería? Pues esto seguramente devolvería una promesa, ¿vale?
Hay veces que por un tema de igualar la API, vas a querer, vamos a poner getDataFromDatabase, ¿vale?
Pues imagínate que también tuvieses la posibilidad de recuperar la misma información en local storage desde una cache.
Pues hay veces que vas a querer hacer esto, getDataFromLocalStorage, ¿vale?
Id, entonces hace local storage, getItemID, por decir algo, y vamos a hacer un return, bueno, a ver, caché, ifCaché, entonces return.
Y aquí es donde viene lo interesante. ¿Por qué? Porque si tú haces esto, esto ya devuelve una promesa.
¿Por qué esto devuelve una promesa? Porque tenemos aquí el async.
Al tener este async, lo que hace es que esta función sí o sí devuelve una promesa.
De hecho, a ver si lo podemos probar. No sé si petará por el tema de que no tiene local storage.
Vale, sí. O sea, no peta. Funciona perfectamente.
Pero ¿veis que pone aquí promise? Pues ahí lo tenemos.
Lo que pasa es que no ha encontrado esto. Vamos a poner return null, ¿vale?
Y vamos a ver que promise null, ¿vale? Ha devuelto el null.
Pero ha devuelto una promesa. O sea, que aquí ya podríamos hacer esto.
ConsoleLogResponse. Entonces ya podemos poner una promesa.
Pero hay veces que si no utilizas el async await, también podrías, pues si lo quieres, hacer que devuelva una promesa.
Lo puedes hacer así. PromiseResolve y hacerlo así.
Y aquí podrías tener promiseResolve con el null.
Sin utilizar el async await. ¿Vale? Lo puedes hacer así.
Puedes devolver promise.resolve o incluso puedes hacer un promise.reject.
Que de esta forma, pues como podéis ver, pues haría un rejected.
Y ya aquí tendrías que hacer un catch del error. ¿Vale?
Y con esto puedes devolver promesas. O sea, ¿por qué os estoy enseñando todo esto?
Porque es solo para que sepáis que no solo podéis crear una promesa con un return new promise.
O sea, formas de crear una promesa.
Vaimidu. No, hombre.
Formas de crear una promesa. ¿Vale?
Tenéis, por ejemplo, el return new promise. ¿Vale?
Y aquí tendríamos return new promise.
Y aquí os llega el resolve y el reject.
Y aquí, pues ya podríais hacer o resolve2 o reject3 o lo que sea.
¿Vale? Esto por un lado.
Luego, otra forma de devolver una promesa sería un return promiseResolve2.
O un return promiseReject3.
Estas son las tres formas en las que puedes crear una promesa y hacer lo que quieras con ellas.
¿Vale?
¿Sí?
Ahí lo tenéis.
Ahí tenéis las tres.
De hecho, la que la veis.
¿Vale?
Esto es bastante interesante porque en pruebas técnicas te pueden decir,
ahora haz que devuelva una promesa.
Y sí, lo que pasa es que la promesa no hace lo que queréis.
Por ejemplo, quiero que se cumpla la promesa de mi crush.
No, esas cosas no funcionan así.
¿Vale?
No funcionan así.
Pero bueno, solo para que lo sepáis, porque esta persona, como comenta aquí,
PromiseCreation, dice,
¿Soy yo o wonky?
¿Qué significa wonky?
Wonky en castellano.
¿Qué significa wonky?
Floja.
Bueno.
Dice, ¿Soy yo o esta sintaxis es un poco floja?
Tampoco puedo ofrecer una mejor alternativa.
Pues para eso, cállate.
¡Cállate!
¡Cállate!
Bueno, pues eso.
Uy, perdón.
Que me equivoco.
No, hombre.
A ver, tampoco cállate.
Pero que es un poco raro.
Es un poco raro.
PromiseCreation.
Bueno, tiene sentido el PromiseCreation, porque si os fijáis, tiene sentido, porque creas
una nueva promesa.
O sea, es que tiene sentido.
Y al final eso lo puedes pasar con un callback.
Ahí lo tienes.
Si no, ¿qué vas a hacer?
Vale.
RequestAnimationFrame.
Esto es bastante antiguo.
Pero bueno, es una alternativa a SetTimeout.
Y que te permite cuándo vas a tener el siguiente frame.
Y es un tema que muchas veces se ha utilizado por tema de rendimiento, para las animaciones
y todo esto.
Luego, Lambdas.
Me imagino que se refiere a esto.
Que bueno, esto es una Role Function, una Lambda.
Es verdad que puede ser una Lambda, pero no es exactamente eso.
Ah, por lo del disk.
Vale.
Por el tema de que no tiene el contexto.
Luego, el document.querySelector, que esto, por si no lo sabéis, es para recuperar un elemento
del DOM utilizando un selector.
La verdad es que esto es básicamente lo que dice.
Es como el dólar de jQuery.
Document.querySelector es que está basado.
O sea, está casi que copiado.
Vale.
Getters and Setters.
Esto es bastante típico.
Const y let.
Ahora, viendo esto, me ha sorprendido que hay cosas que no ha hecho del todo.
O sea, que podrían haber hecho y no las ha hecho.
Hostia, Julio Burgos.
Hacemos una noche de gaming en Twitch.
Madre mía.
Os debo unas cuantas.
O sea, que...
Os debo unas cuantas.
Vale.
Me la apunto.
Ya tendrá que ser para cuando vuelva la vacación, me parece.
Me parece.
Vale.
Pues el tema es que viendo esto, todo esto,
hay cosas que son nuevas y no ha hecho.
Y yo creo que debería hacer.
Por ejemplo, mira, cosas que no ha hecho y no ha destacado
y creo que estarían bastante bien.
Y más teniendo en cuenta todo esto que veo por aquí.
Mira, esto es una propiedad que podría ser de la clase.
Por lo tanto, podría hacerlo así.
Show thing true.
Lo podría hacer así.
Y esto...
Aquí no me va a funcionar porque no tiene propiedades de clase activada
a run.js.
Pero esto es una cosa que es correcta, ¿vale?
Así que esto, por ejemplo, lo podría hacer ahí.
Y si quisiera que fuese privada, podría hacerlo así también.
Y que además quedaría bastante bien.
Y me sorprende que no...
Pues que diga, ostras, ¿por qué no he hecho eso?
Y ya está.
Luego, aunque...
¿Ves?
Este...
Me ha sorprendido un poco la sintaxis de que tenga un wild.
Mientras esto, entonces, espera la promesa.
Porque esto tiene bastante mala pinta.
El cómo funciona dentro de un wild.
No sé.
Me ha sorprendido un poco.
No sé.
Me imagino que es un ejemplo, pero no tiene mucho sentido el código.
¿Sabes?
Luego, tampoco sé muy bien por qué ha puesto este data así, de esta forma.
Pero también aquí podría haber hecho esto.
Podría haberlo hecho así, directamente, si quiere, con el privado aquí.
Y ya está.
En lugar de poner esto con esta cosa aquí.
Porque además, lo bueno de esto es que tampoco colisiona.
Cuando tú haces que es una propiedad privada de la clase, tampoco colisiona.
O sea, por ejemplo, podrías tener esto.
Y esto son dos cosas distintas.
Aunque tengan el mismo nombre, como uno tiene el símbolo de que es una propiedad privada de la clase,
pues no colisiona.
Pero bueno.
Este código es de un artículo de cosas nuevas que ha aprendido de JavaScript.
Y nada, lo estábamos comentando.
Y ya está.
Midu, ¿tú crees que algún día JavaScript adquiera las características de TypeScript?