这段代码肯定是错的,但我不确定如何修复它。
E.g。
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);
}
这显然不起作用,因为当第二次提取运行时,最终将在第一次提取中定义的max var尚不存在。我怎样才能"链"或者强制第二次获取"等待"第一次获取?
答案 0 :(得分:3)
由于fetch()
会返回一个承诺,您可以从then()
返回该承诺,它会按预期运行:
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))