No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Promesas

15/25
Recursos

Aportes 12

Preguntas 3

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

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;
}

No se pronuncia 鈥榓sainc鈥, se pronuncia 鈥榚isinc鈥

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)
})()

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);

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

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/

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?

Woooah estaba viendo documentaci贸n de librer铆as con TS y en algun momento vi que se le pasaban 鈥減ar谩metros鈥 a las interfaces asi: <T> y pens茅 驴Esto que es? resulta que eran Genericos :0

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

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

Est谩 caida el api 馃ゲ.