Javascript Axios内循环
我试图在for循环中处理axios请求,但循环甚至在axios之前就已经完成了。以下是我的代码:Javascript Axios内循环,javascript,for-loop,axios,Javascript,For Loop,Axios,我试图在for循环中处理axios请求,但循环甚至在axios之前就已经完成了。以下是我的代码: let findEmail = async() => { for (var i = 0; i < csvData.length; i++){ axios.post('https://email-finder.herokuapp.com/find', { "first_name": "Irinaa", "last_name": "xyz",
let findEmail = async() => {
for (var i = 0; i < csvData.length; i++){
axios.post('https://email-finder.herokuapp.com/find', {
"first_name": "Irinaa",
"last_name": "xyz",
"domain": "xyxz.com"
}).then((response) => {
if(response.status === 500){
console.log('no email found');
}
else{
console.log(response.data);
}
}, (error) => {
console.log('no email found ', i);
});
console.log('axios request done');
}
}
让findEmail=async()=>{
对于(变量i=0;i{
如果(response.status==500){
console.log(“未找到电子邮件”);
}
否则{
console.log(response.data);
}
},(错误)=>{
console.log('未找到电子邮件',i);
});
log('axios请求完成');
}
}
我希望循环等待请求完成,然后转到递增I变量。任何帮助都将不胜感激。谢谢因为您使用的是异步函数,请尝试使用wait而不是then。 它将使for循环同步运行
let findEmail = async () => {
for (var i = 0; i < csvData.length; i++) {
try {
let response = await axios.post(
"https://email-finder.herokuapp.com/find",
{
first_name: "Irinaa",
last_name: "xyz",
domain: "xyxz.com"
}
);
if (response.status === 500) {
console.log("no email found");
} else {
console.log(response.data);
}
} catch (error) {
console.log("no email found ", i);
}
console.log("axios request done");
}
};
让findEmail=async()=>{
对于(变量i=0;i
请查看T.J.Crowder关于如何在同步函数中等待JavaScript异步调用的解释。。如果您正在等待返回数据,那么您正在等待状态200。
尝试添加:
else if(response.status === 200){
console.log(response.data);
}
使事情同步和行为同步之间有一个很大的区别。很好。这是我的第一个答案,所以你可以说noob spotted。尝试使用承诺,如果你擅长观察,也可以帮助你