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 № 1Depuis 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))