Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 异步$.post在for循环中_Javascript_Jquery_Post - Fatal编程技术网

Javascript 异步$.post在for循环中

Javascript 异步$.post在for循环中,javascript,jquery,post,Javascript,Jquery,Post,可能重复: 我在尝试访问$.post函数中的变量时遇到问题 函数中变量a的值始终相同:7。但在它之外,它会随着我的需要而增加 为什么会这样?如何为$.post函数执行循环 for(var a=0; a<7; a++){ console.log(a); /* increasing value */ $.post("http://"+ document.domain + "/posts/user/xxxxx", function(departments){

可能重复:

我在尝试访问
$.post
函数中的变量时遇到问题

函数中变量
a
的值始终相同:7。但在它之外,它会随着我的需要而增加

为什么会这样?如何为
$.post
函数执行循环

for(var a=0; a<7; a++){
    console.log(a); /* increasing value */

    $.post("http://"+ document.domain + "/posts/user/xxxxx",
        function(departments){
        console.log(a);  /*value of 7*/

    });
}

for(var a=0;a为每个迭代指定它自己的范围,或者使用
$.ajax
上下文
选项

for(var a=0; a<7; a++){
    (function(a){
        console.log(a); /* increasing value */

        $.post("http://"+ document.domain + "/posts/user/xxxxx",
            function(departments){
            console.log(a);  /*value of 7*/

        });
    })(a);
}

为每个迭代指定它自己的范围,或者使用
$.ajax
上下文
选项

for(var a=0; a<7; a++){
    (function(a){
        console.log(a); /* increasing value */

        $.post("http://"+ document.domain + "/posts/user/xxxxx",
            function(departments){
            console.log(a);  /*value of 7*/

        });
    })(a);
}

ref:(应该有一个接近的选项,只针对这个不断重复出现的问题,没有冒犯!)哦,是的,只要连续发出7个Ajax请求。你的服务器就可以了。
:P
@Sime,就我所知,是从数据库获取7个不同数据数组的唯一方法…@Steve等等,为什么不让服务器脚本从数据库获取所有数据,然后在一个响应中返回它。是的,我是个天才!
:P
@Steve:我看不出有什么不同在这七个请求之间,您是否忘记发送
a
?无论如何,您可能会重新构造API,以便它可以在一个requestref中返回7个数组:(应该有一个关闭选项,仅针对这个经常重复出现的问题,没有冒犯!)哦,是的,只要连续发出7个Ajax请求。你的服务器就可以了。
:P
@Sime,就我所知,是从数据库获取7个不同数据数组的唯一方法…@Steve等等,为什么不让服务器脚本从数据库获取所有数据,然后在一个响应中返回它。是的,我是个天才!
:P
@Steve:我看不出有什么不同在这七个请求之间,您是否忘记发送
a
?无论如何,您可能会重新构造API,以便它可以在一个请求中返回7个数组