Este código está definitivamente errado, mas não sei como corrigi-lo.
Por exemplo.
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);
}
Obviamente, isso não funciona, porque o max varque eventualmente serão definidos na primeira busca ainda não existe quando a segunda busca for executada. Como posso "encadear" ou forçar a segunda busca a "esperar" pela primeira busca?
Respostas:
3 para resposta № 1Desde a fetch()
retorna uma promessa, você pode devolvê-lo de um then()
e se comportará conforme o esperado:
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))