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);
}