当我使用axios.post时,我遇到了这个问题
var len =5;
var a ={};
function abc(temp){
console.log(temp);
axios.post("/",temp);
}
while(len--){
a.name = len;
abc(a);
}
当我在控制台中运行此代码时,它将使用相同的有效负载发送5次请求。
原因是var || let
?
但是当我使用$.ajax
时,它正常工作。
我想回答一下,非常感谢。
答案 0 :(得分:0)
您遇到的问题是a
函数调用中变量abc
的范围。
while(len--) {
let length = len;
abc( { name: length } );
}
这为每次迭代创建一个新变量length
,并且范围仅限于该迭代。
这个问题的答案JavaScript闭包内部循环 - 简单的实际示例详细解释了为什么会发生这种情况以及JavaScript中的范围和闭包。上述问题与此问题完全相同。