Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/42.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
jQuery$。在循环中时,dosen';t在继续循环之前,不要等待每个调用完成_Jquery_Ajax_Loops_.when - Fatal编程技术网

jQuery$。在循环中时,dosen';t在继续循环之前,不要等待每个调用完成

jQuery$。在循环中时,dosen';t在继续循环之前,不要等待每个调用完成,jquery,ajax,loops,.when,Jquery,Ajax,Loops,.when,我使用$。当在循环中调用ajax函数时: for ( var i = 0; i < 4; i++ ){ $.when(get_total_price("var1","var2")).then(function (v) { console.log("i= "+i); }); } 但结果是: i= 5 i= 5 i= 5 在这种情况下,我不能在ajax调用中使用I 函数回调是异步完成的,因此在循环终止后调用。函数回调是异步完成的,因此在循环终止后调用。正如其

我使用
$。当
在循环中调用ajax函数时:

for ( var i = 0; i < 4; i++ ){
    $.when(get_total_price("var1","var2")).then(function (v) {
        console.log("i= "+i);
    });
}
但结果是:

i= 5
i= 5
i= 5

在这种情况下,我不能在ajax调用中使用
I

函数回调是异步完成的,因此在循环终止后调用。

函数回调是异步完成的,因此在循环终止后调用。

正如其他人所指出的,
是javascript异步编程的延迟模型时。循环在异步函数之前终止,即调用回调时。下面是一个通过以下方法使其工作的技巧:

for(变量i=0;i<4;i++){
(功能(){
$.when(获取总价格(“var1”、“var2”))。然后(函数(v){
console.log(“i=“+i”);
})
)(i) );
}

正如其他人所指出的,
when
是在javascript中进行异步编程的延迟模型。循环在调用异步函数(即回调)之前终止。下面是一个通过使用以下方法使其工作的技巧:

for(变量i=0;i<4;i++){
(功能(){
$.when(获取总价格(“var1”、“var2”))。然后(函数(v){
console.log(“i=“+i”);
})
)(i) );
}

Ajax不是异步的吗?如果我没记错的话,Ajax的设计就是异步的Async@Satya是的,它甚至在名称(异步javascript和xml)中也是如此;Ajax不是异步的吗?如果我没记错的话,Ajax的设计就是异步的Async@Satya是的,它甚至在名称中(异步javascript和xml)
i= 5
i= 5
i= 5
for ( var i = 0; i < 4; i++ ){
    (function() {
        $.when(get_total_price("var1","var2")).then(function (v) {
            console.log("i= "+i);
        })
    )(i);
}