递归方法调用出错
Error on recursive method call
我需要从外部API获取数据。由于我必须一次又一次地调用以检查状态,直到状态为TRUE,因此我将其置于递归循环中。我需要知道我的逻辑出了什么问题,因为我无法得到想要的输出。做响应。状态更新本身,或者我需要做另一个ajax就像我在代码中做的那样
fetchFunct();
function fetchFunct(){
console.log("entered function");
$.ajax
({
type: "GET",
url: "/content/mosaic/multi/preview/status/"+testId ,
async: false,
dataType : "json",
success : function(response)
{
console.log(response);
if(response.status === false)
{
console.log("Processing details"); //show still in progress
$("#load").show();
$("#heading").hide();
$("#b1").hide();
$("#b2").hide();
$("#b3").hide();
$("#b4").hide();
$("#b5").hide();
}else
{
$("#load").hide();
console.log("Loading 1");
$("#b1").click(function(){
$("#ad22img").attr("src","http://" + response.images.android22);})
console.log("Loading 2");
$("#b2").click(function(){$("#ad4img").attr("src","http://" + response.images.android4);})
console.log("Loading 3");
$("#b3").click(function(){ $("#apm6img").attr("src","http://" + response.images.appmail6);})
console.log("Loading 4");
$("#b4").click(function(){ $("#blbimg").attr("src","http://" + response.images.blackberryhtml);})
console.log("Loading 5");
$("#b5").click(function(){$("#iphnimg").attr("src","http://" + response.images.iphone5s);})
is_loaded = true;
}
}
}).fail(function(data) { console.log("FAIL"); }).done(function(data) { console.log("coming out of ajax");
});
if(!is_loaded)
{
console.log("entered if");
delay=delay*2;
if(delay>60)
{delay=1;}
setTimeout(fetchFunct,delay*1000);
}
//console.log("if not entered");
}
你应该在回调函数中再次调用你的函数。
if(response.status === false)
{
console.log("Processing details"); //show still in progress
$("#load").show();
$("#heading").hide();
$("#b1").hide();
$("#b2").hide();
$("#b3").hide();
$("#b4").hide();
$("#b5").hide();
//Try again
setTimeout(function(){
fetchFunct();
},1000);
}else
不需要AJAX调用下的任何setTimeout
逻辑。
相关文章:
- 尝试调用AngularJS上的函数时出错
- 从 java 脚本调用函数时 PHP 中出错
- 使用Angular获取数据API调用时出错
- CakePHP错误:在非对象上调用成员函数get(),使用cakejavascript助手时出错
- 在 $.ajax 调用中出错
- AWS:调用getCredentialsForIdentity()时出错
- 404调用jQuery.post时出错
- 要求JS 2.1.9引起“;最大调用堆栈"使用Grunt时出错
- 完成ajax调用数组的循环,而不是在某个调用出错时中断
- 警告:字体加载过程中出错:轨道上的PDFJS超过了最大调用堆栈大小错误
- 未捕获的类型错误:this.reset不是函数-在ajax调用后清空输入时出错
- 从.ascx文件调用Javascript函数时出错
- 在NPObject上调用方法时出错:(一个理想的)PhoneGap项目
- "无法调用方法'打开'未定义的“;使用indexedDB.open时出错
- JQuery尝试进行Ajax调用时出错
- 在javascript中调用php时出错
- 在提交事件上调用 ajax 时出错
- 在 jQuery 插件中调用函数时出错
- 尝试使用 angularjs 拦截器时出错 未捕获 获取 无法调用未定义的方法“推送”
- Ajax 调用时出错 ->发送两个文件而不是一个文件