我试图递归地调用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方法中删除括号。

07-25 22:03