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
Promise.allespera todas las promesas y falla rápido.- Mapear sobre las urls lanza todas las peticiones de inmediato.
Promise.allSettled, en cambio, reporta cada resultado.
Palabras clave y builtins usados aquí
Promiseasyncawaitconstfunctionreturn
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.
Paso 4 de 5 en Promesas; paso 4 de 19 en Promesas y async.