【发布时间】:2019-06-14 08:53:12
【问题描述】:
我想运行一个 axios 请求调用后端的循环,并在重定向页面之前等待所有响应。
在下面的代码中,一旦我收到 200 OK 的响应,我想将它推送到 promiseArray。如果我收到所有 promiseArray 项目,我想将页面重定向到另一个 url。
就我而言,代码似乎并没有真正停下来等待响应。它循环 axios 请求 3 次,但不是等待响应,而是直接运行重定向部分。
有什么想法吗?
function test(){
var response = undefined;
var length = 3;
var promiseArray = [];
for(var a=0;a<length;a++){
var link = 'https://'+hostname+'/';
var apiUrl = 'api/xxx';
var token = "123";
axios.create({
baseURL: link,
timeout: 60000,
headers: {
Authorization: token
}
}).post(apiUrl, {
...
}).then(res => {
console.log(res);
promiseArray.push(res);
}).catch(err=>{
console.log("err");
console.log(err);
});
}
response = await axios.all(promiseArray);
if(response!=undefined){
window.location.replace("https://"+hostname+"/abc");
}
}
【问题讨论】:
-
把它放在你的
.then()函数中。如果你想在那之后再做第二个.then()函数。 -
你也可以使用异步而不是承诺来做到这一点。 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
标签: javascript axios