Obteniendo una serie de URL con Promise.all
Para recuperar una serie de datos de texto de un conjunto de URL, utilizando Promise.all es un enfoque adecuado. Aquí se explica cómo realizar esta tarea de manera efectiva:
Supongamos que tiene una serie de cadenas de URL:
var urls = ['1.txt', '2.txt', '3.txt']; // Text files containing "one", "two", "three"
La salida deseada es una matriz de contenido de texto:
var text = ['one', 'two', 'three'];
El uso de Promise.all le permite encadenar múltiples operaciones asincrónicas. En este caso, se puede utilizar para recuperar primero cada URL y posteriormente extraer el texto de cada respuesta:
Promise.all(urls.map(url => fetch(url)))
.then(responses =>
Promise.all(responses.map(res => res.text()))
)
.then(texts => {
// ...
});
En el código anterior, Promise.all se usa dos veces: una para iniciar la búsqueda de todas las URL y una segunda para obtener el contenido de texto de cada respuesta.
Un enfoque alternativo, que combina ambas operaciones en una única cadena Promise.all, se puede lograr de la siguiente manera:
Promise.all(urls.map(url =>
fetch(url)
.then(resp => resp.text())
))
.then(texts => {
// ...
});
Además, puede simplificar aún más este código usando async/await:
const texts = await Promise.all(urls.map(async url => {
const resp = await fetch(url);
return resp.text();
}));
Ambos enfoques utilizan eficazmente Promise.all para lograr el resultado deseado de obtener una serie de URL y extraer el contenido de texto asociado.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3