voici le jsfiddle: https://jsfiddle.net/8ocdupar/
P>
(index):39 Response {type: "cors", url: "https://jsonplaceholder.typicode.com/todos/1", redirected: false,
status: 200, ok: true, â¦}
(index):39 Response {type: "cors", url: "https://jsonplaceholder.typicode.com/todos/1", redirected: false,
status: 200, ok: true, â¦}
(index):39 Response {type: "cors", url: "https://jsonplaceholder.typicode.com/todos/1", redirected: false,
status: 200, ok: true, â¦}
(index):39 Response {type: "cors", url: "https://jsonplaceholder.typicode.com/todos/1", redirected: false,
status: 200, ok: true, â¦}
(index):39 Response {type: "cors", url: "https://jsonplaceholder.typicode.com/todos/1", redirected: false,
status: 200, ok: true, â¦}
(index):39 Response {type: "cors", url: "https://jsonplaceholder.typicode.com/todos/1", redirected: false,
status: 200, ok: true, â¦}
DONE!!!
3 Réponses :
Utilisez p> async code> et attendre code>: (async function () {
var arr = [0,1,2,3,4,5];
for (var i = 0; i < arr.length; i++) {
let response = await fetch("https://jsonplaceholder.typicode.com/todos/1")
let o = await response.json(); // <-- you'll want this too...
console.log(o);
}
console.log("DONE!!!")
})(); // <-- execute it
Cela a l'effet secondaire des demandes exécutant séquentiellement plutôt que parallèlement.
Utilisez p> promess.All code> pour créer une nouvelle promesse qui résout une fois que toutes les promesses fournies ont été résolues. let arr = [0, 1, 2, 3, 4, 5]
let promises = []
for (let i = 0; i < arr.length; i++) {
promises.push(
window
.fetch("https://jsonplaceholder.typicode.com/todos/1")
.then(response => {
console.log(response)
})
)
}
Promise.all(promises).then(() => {
console.log("DONE!!!")
})
C'est le moyen de le faire en général, à moins qu'une demande dépend d'un résultat d'un précédent. Ensuite, le plus tard aura besoin d'attendre que le premier se termine. +1
Lorsque vous appelez L'utilisation de base pour une promesse est généralement "faire quelque chose lorsque cette promesse est résolue", qui fonctionne en appelant le Pour savoir quand multiple EM> Les promesses ont fini, utilisez la fonction statique puis passez ce tableau à Qu'est-ce que (un PS important: lorsque vous faites Fetch code>, il retournera un objet de promesse qui résoudra lorsqu'une réponse est disponible. JavaScript ne pas automatiquement em> fait quelque chose avec cet objet de promesse, cependant; Vous devez être explicite sur ce que vous voulez faire avec cela. .Chen () code > méthode sur l'objet de promesse avec une fonction de rappel passée; Vous montrez déjà que dans votre code en faisant .then (réponse => {console.log (réponse)}) code>. p> promess.all code>. Vous devrez garder une trace de tous les objets de promesse que vous créez en les stockant dans une matrice ... p> promess.all < / code>. Cela rendra réellement un nouvel objet de promesse - celui-ci va résoudre quand tous les em> les promesses passées sont effectuées: p> code> variable? Ce sera une matrimonie de toutes les valeurs résolues par chaque promesse dans le tableau code> code>. Donc, dans cet exemple, ce sera chaque objet de réponse. P> promess.then (cb) code>, il retournera une nouvelle promesse; ceci La nouvelle promesse va résoudre lorsque la fonction cb code> résout et sa valeur résolue sera tout ce que cb code> est retourné. Ceci est très utile pour savoir quand vous utilisez prometteur. Tout code>, dans le cas par exemple, vous voulez obtenir le corps em> de la réponse; vous feriez promettes.push (extraire (...). ensuite (res => res.body ())); code>.) p> p>
Vous voulez dire quelque chose comme
promess.all (arr.map (nr => fetch ("https://jsonplaceholder.typicode.com/todos/" + nr))). alors (Console.log); Code >?