如何递归调用ajax直到某个条件变为真?

时间:2014-07-14 19:00:39

标签: 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>

1 个答案:

答案 0 :(得分:2)

而不是setTimeout(callApi4(), 2000);setTimeout(callApi4, 2000);,而是从callApi4方法中删除括号。