javascript - 如何递归调用ajax直到某个条件成立?

标签 javascript jquery ajax recursion

我试图递归调用ajax方法,直到maxnumId为空或未定义。我当前的代码只触发一次!谁能告诉我我在这里做错了什么?谢谢

这是代码:

<script>
    var maxnumId = null;

    function callApi4() {
        $.ajax({
            type: "GET",
            dataType: "jsonp",
            cache: false,
            url: "https://api.somesite.com/ddddd" + ( maxnumId ? "&max_id=" + maxnumId : ""),
            success: function(data) {
                maxnumId = data.pagination.next_max_id;
                alert('maxnumId is now: ' + maxnumId);
                document.myform.outputtext.value = document.myform.outputtext.value+data.pagination.next_max_id+'\n' ;

            for (var i = 0; i < 100; i++) {

            $(".content").append("<img class='image' src='" + data.data[i].images.low.url +"' />");   
            }

              if(maxnumId != "undefined"){
                setTimeout(callApi4(), 2000);
               }
               else
               {
                 alert('finished');
               }
            }
        });
    }
    </script>

<button onclick="callApi4()">call ajax first time</button>

最佳答案

setTimeout(callApi4(), 2000); 改为 setTimeout(callApi4, 2000);,并从 callApi4 方法中删除括号。

关于javascript - 如何递归调用ajax直到某个条件成立?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24743815/

相关文章:

javascript - jquery - 当图像大于容器时可拖动图像

javascript - 如何检查字符串或html中是否有相同的连续元素

jquery - 使用 JQuery 时 TinyMCE 未加载

javascript - 参数化ajax请求正文

javascript - 我的代码在以对象文字表示法创建方法时有什么问题?

javascript - 使用输入文本 Angular 克隆对象

javascript - 根据 API 的响应异步更新进度条

javascript - 在javascript中搜索ajax请求元素的索引

javascript - Ajax 参数在传递到 Java Controller 时会被加密

javascript - 使用循环从数组中删除空值的最简单方法是什么(Js)