typestar

Promesas concurrentes en JavaScript

Ejecutar muchas operaciones asíncronas a la vez.

const urls = ["/api/a", "/api/b", "/api/c"];

async function loadAll() {
  const requests = urls.map((url) => fetch(url));
  const responses = await Promise.all(requests);
  return Promise.all(responses.map((r) => r.json()));
}

async function loadSafely() {
  const results = await Promise.allSettled(urls.map((u) => fetch(u)));
  return results.filter((r) => r.status === "fulfilled");
}

Cómo funciona

  1. Promise.all espera todas las promesas y falla rápido.
  2. Mapear sobre las urls lanza todas las peticiones de inmediato.
  3. Promise.allSettled, en cambio, reporta cada resultado.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
12
Caracteres a escribir
379
Tokens
113
Ritmo de tres estrellas
95 tpm

Al ritmo de tres estrellas de 95 tokens por minuto, este intento toma unos 71 segundos.

Escribe este fragmento

Paso 4 de 5 en Promesas; paso 4 de 19 en Promesas y async.

← Anterior Siguiente →