No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

12 Días
2 Hrs
7 Min
0 Seg

Promesas

15/25
Recursos

Aportes 15

Preguntas 4

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

El API en texto que se debe consumir es este:

https://api.escuelajs.co/api/v1/products

Les comparto mis apuntes. 😄

Axios

Es una forma interesante de hacer request y conectarnos a servicios web, nos va a servir para hacer peticiones desde el frontend como en el backend.

Asincronismo y TypeScript

Podemos correr promesas y código asíncrono con TypeScript de la misma forma que lo haríamos con JavaScript.

Tipado y promesas

En el caso de no colocar el tipo de dato de retorno de nuestra función asíncrona, TypeScript supondrá que es una promesa, pero no sabe el tipo de dato que retorna esa promesa.

Podemos tipar a una promesa con genéricos

const variableName = new Promese<dataType>(...);

Fetch con NODE v18

Podemos utilizar nodejs para poder realizar peticiones fetch pero solo lo podemos hacer con la versión 18, es una feature no estable así que puede tener sus errores.

Ejemplo en base al código de la clase

async function getProductsFetch () {
    const promise = await fetch('https://api.escuelajs.co/api/v1/products');
    const rta = await promise.json();
    return rta;
}

Una mejor manera (a mi parecer) de escribir la función de async await es usando la destructuración de objetos sabiendo qué vamos a extraer de la respuesta:

import axios from "axios"

(async() => {
  async function getProducts() {
    const { data } = await axios.get('https://api.escuelajs.co/api/v1/products')
    return data
  }

  const products = await getProducts()
  console.log(products)
})()

No se pronuncia ‘asainc’, se pronuncia ‘eisinc’

En los comentarios ya está el nuevo link que hay que usar ❤️, pero si quieren explorar más esa api, hay un nuevo diseño y cositas geniales que se han desarrollado https://fakeapi.platzi.com/

Aquí una forma más elegante de declarar un delay. Es similar al time.sleep de Python. Yo lo uso en algunos de mis proyectos:

const sleep = async(delay: number) => {
    await new Promise((resolve) => setTimeout(resolve, delay));
  }

await sleep(1000);

Ya fetch es parte de node ❤️

En la v2 del get product, si ya dentro de la funcion getProductsAsync tenemos un await para luego obtener el valor de la promesa ¿Por qué llamamos de nuevo el await en la ejecución de la función? en const productsv2 = ++await ++ getProductsAsync ¿Cuál es la función de ese await?

En node v17+ fetch esta disponible como opción experimental

Con console.time() y console.timeEnd() podemos saber exactamente cuanto tiempo tarda en ejecutarse un proceso asíncrono. Aquí un ejemplo:

  console.time('delay')
  const rta = await delay(5000);
  console.log(rta);
  console.timeEnd('delay')

y la salida de mi consola:
true
inicio: 5.018s

con fetch, el slice es solo para obtener una parte de la data pa evitarme el scroll ![](https://static.platzi.com/media/user_upload/image-6d197b30-5523-49e3-a2a6-bcc13a6ac255.jpg) ```js (async () => { function delay(time: number) { const promise = new Promise<boolean>((resolve) => { setTimeout(() => { resolve(true) }, time) }); return promise } const getProducts = async () => { const promise = await fetch('https://api.escuelajs.co/api/v1/products') const data = await promise.json() console.log(data.slice(0,2)) } getProducts() const rts = await delay(3000) console.log(rts) })(); ```

esos Genericos no lo vimos en Fundamentos ni en Tipos Avanzados

Woooah estaba viendo documentación de librerías con TS y en algun momento vi que se le pasaban “parámetros” a las interfaces asi: <T> y pensé ¿Esto que es? resulta que eran Genericos :0

Ya no es necesario estar en un contexto asincrono para ejecutar await, una pasada 🍺

Está caida el api 🥲.