Javascript 在jquery中完成一个之前停止执行另一个

Javascript 在jquery中完成一个之前停止执行另一个,javascript,jquery,ajax,Javascript,Jquery,Ajax,我在jquery的for循环中使用$.ajax for(var i=0; i < 2; 1++) { $.ajax({ url :"/models/getdata"+i dataType:"json" success:function(data) { } }); } 此处相同的函数A()需要等待其ajax post完成。但在我的例子中,它会转到下一个开始执行的代码。在当前函数完成之前,如何停止进一步的执行。就像C语言中的睡眠概念# 我该怎么做 谢谢 Siva在ajax调用中设置asy

我在jquery的for循环中使用$.ajax

for(var i=0; i < 2; 1++)
{

$.ajax({
url :"/models/getdata"+i
dataType:"json"
success:function(data)
{
}
});

}
此处相同的函数A()需要等待其ajax post完成。但在我的例子中,它会转到下一个开始执行的代码。在当前函数完成之前,如何停止进一步的执行。就像C语言中的睡眠概念#

我该怎么做

谢谢


Siva在ajax调用中设置
async:false

一个简单的通用解决方案:

var i=0;
(function doOne(){
    $.ajax({
        url :"/models/getdata"+i
        dataType:"json"
        success:function(data){
            if (++i<2) doOne();
        }
    });
})();

默认情况下,当我们使用
$.ajax
时,所有请求都是异步发送的。所谓异步,我的意思是,web应用程序可以向服务器(在后台)发送数据和从服务器检索数据,而不会干扰现有页面的显示和行为。但您希望在请求完成之前停止执行,因此将
async
设置为“false”

使用此项—

$.ajax({
    url :"/models/getdata"+i
    dataType:"json",
    async: false,
    success:function(data)
    {
    }
 });

这种方法可能是处理这个问题的最佳方法

$.when(*AJAX CALL*)
    .then(function() { // Function to run after ajax is completed
});

aync属性,用于指定完整post还是ajax post不适用于此项。不,如果不先执行ajax请求,它将无法继续!这就是async false的原因async:false的用途是什么?它确保在完成此ajax调用之前不会执行下一行completed@SivaRajini然后使用dystroy解决方案。
$.ajax({
    url :"/models/getdata"+i
    dataType:"json",
    async: false,
    success:function(data)
    {
    }
 });
$.when(*AJAX CALL*)
    .then(function() { // Function to run after ajax is completed
});