/ / Javascript: comment attendre le résultat d’une extraction puis en commencer une autre [dupliquer] - javascript, json, fetch, es6-promise

Javascript: comment attendre le résultat d'une extraction puis en commencer une autre [dupliquer] - javascript, json, fetch, es6-promise

Ce code est définitivement faux, mais je ne suis pas sûr de savoir comment le réparer.

Par exemple.

fetch("api/foo?get_max=True")
.then( function(response) {
return response.json();
}
.then( function(response) {
var max = response["max"];
}

fetch("api2/bar?max=" + max)
.then( function(response) {
return response.json();
}
.then( function(mydata) {
processdata(mydata);
}

Cela ne fonctionne évidemment pas, car le max varcelle qui sera éventuellement définie dans la première extraction n'existe pas encore lorsque la deuxième extraction s'exécute. Comment puis-je "chaîner" ou forcer la deuxième extraction à "attendre" la première extraction?

Réponses:

3 pour la réponse № 1

Depuis fetch() retourne une promesse que vous pouvez renvoyer d'un then() et il se comportera comme prévu:

fetch("api/foo?get_max=True")
.then( response => response.json())
.then( response => {
var max = response["max"];
return fetch("api2/bar?max=" + max)
})
.then( response => response.json())
.then( mydata => processdata(mydata))