我试图以递归方式调用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>
答案 0 :(得分:2)
而不是setTimeout(callApi4(), 2000);
写setTimeout(callApi4, 2000);
,而是从callApi4方法中删除括号。