如何仅在成功转到下一个循环值时在循环中运行ajax请求?

Max*_*tin 0 javascript ajax jquery loops

我有一个非常基本的场景:运行3 Google映射放置URL并在每次成功时显示结果

这是我到目前为止:

 var  values = ["url1", "url2", "url3"];

  values.forEach(function(value, i) {

     var jsonReq = JSON.stringify({
        action: 101,
        supported: value 
    });

    ...

     $.ajax({
        type: "POST",
        url: "data.ajax.php",
        dataType:"json",
        data:{
            data:jsonReq
        },
        success:function(data){
           // parse results
           ....

        }
    }); 

  });
Run Code Online (Sandbox Code Playgroud)

问题是我在循环中运行所有3个URL 而无需等待成功.

我想只在从前一个获得响应(回调)时发送下一个请求.

有什么建议?

谢谢,

Rup*_*tel 5

尝试递归而不是......像这样

var currentR = 0;
    var  values = ["url1", "url2", "url3"];
    function sendReqests()
    {
       if(!values[currentR])
       return false;
       var jsonReq = JSON.stringify({
            action: 101,
            supported: values[currentR]
        });
       $.ajax({
            type: "POST",
            url: "data.ajax.php",
            dataType:"json",
            data:{
                data:jsonReq
            },
            success:function(data){
             currentR++;  
              if(values[currentR]){
              sendReqests();
              }
            }
        }); 

    }


    // call the recursive function 

    sendReqests();
Run Code Online (Sandbox Code Playgroud)