Извлечение массива URL-адресов с помощью Promise.all
Чтобы получить массив текстовых данных из набора URL-адресов, используя Promise.all это подходящий подход. Вот как эффективно выполнить эту задачу:
Предположим, у вас есть массив строк URL-адресов:
var urls = ['1.txt', '2.txt', '3.txt']; // Text files containing "one", "two", "three"
Желаемый результат — массив текстового содержимого:
var text = ['one', 'two', 'three'];
Использование Promise.all позволяет объединять несколько асинхронных операций в цепочку. В этом случае его можно использовать для сначала получения каждого URL-адреса, а затем извлечения текста из каждого ответа:
Promise.all(urls.map(url => fetch(url)))
.then(responses =>
Promise.all(responses.map(res => res.text()))
)
.then(texts => {
// ...
});
В приведенном выше коде Promise.all используется дважды: один раз для инициации получения всех URL-адресов и второй раз для получения текстового содержимого из каждого ответа.
An альтернативный подход, объединяющий обе операции в одну цепочку Promise.all, может быть реализован следующим образом:
Promise.all(urls.map(url =>
fetch(url)
.then(resp => resp.text())
))
.then(texts => {
// ...
});
Кроме того, вы можете еще больше упростить этот код, используя async/await:
const texts = await Promise.all(urls.map(async url => {
const resp = await fetch(url);
return resp.text();
}));
Оба этих подхода эффективно используют Promise.all для достижения желаемого результата: получения массива URL-адресов и извлечения соответствующего текстового содержимого.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3