在for / while中,axios.post使用相同的主体发送请求。 axios和$ .ajax有什么不同

时间:2017-08-11 17:15:40

标签: javascript ajax axios

当我使用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时,它正常工作。

我想回答一下,非常感谢。

1 个答案:

答案 0 :(得分:0)

您遇到的问题是a函数调用中变量abc的范围。

while(len--) {
   let length = len;
   abc( { name: length } );
}

这为每次迭代创建一个新变量length,并且范围仅限于该迭代。

这个问题的答案JavaScript闭包内部循环 - 简单的实际示例详细解释了为什么会发生这种情况以及JavaScript中的范围和闭包。上述问题与此问题完全相同。