Abrufen eines Arrays von URLs mit Promise.all
Um ein Array von Textdaten aus einem Satz von URLs abzurufen, verwenden Sie Promise.all ist ein geeigneter Ansatz. So erledigen Sie diese Aufgabe effektiv:
Angenommen, Sie haben ein Array von URL-Strings:
var urls = ['1.txt', '2.txt', '3.txt']; // Text files containing "one", "two", "three"
Die gewünschte Ausgabe ist ein Array mit Textinhalten:
var text = ['one', 'two', 'three'];
Mit Promise.all können Sie mehrere asynchrone Vorgänge verketten. In diesem Fall kann es verwendet werden, um zunächst jede URL abzurufen und anschließend den Text aus jeder Antwort zu extrahieren:
Promise.all(urls.map(url => fetch(url)))
.then(responses =>
Promise.all(responses.map(res => res.text()))
)
.then(texts => {
// ...
});
Im obigen Code wird Promise.all zweimal verwendet: einmal, um den Abruf aller URLs zu initiieren, und ein zweites Mal, um den Textinhalt aus jeder Antwort abzurufen.
An Ein alternativer Ansatz, der beide Operationen in einer einzigen Promise.all-Kette kombiniert, kann wie folgt erreicht werden:
Promise.all(urls.map(url =>
fetch(url)
.then(resp => resp.text())
))
.then(texts => {
// ...
});
Darüber hinaus können Sie diesen Code mit async/await weiter vereinfachen:
const texts = await Promise.all(urls.map(async url => {
const resp = await fetch(url);
return resp.text();
}));
Beide dieser Ansätze nutzen Promise.all effektiv, um das gewünschte Ergebnis zu erzielen, indem ein Array von URLs abgerufen und der zugehörige Textinhalt extrahiert wird.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3