我将调用一个进行同步REST API调用的函数。如果它在一段时间内没有返回,我想以某种方式超时该函数调用。我该怎么做?
callBlahService = function(args){
// make actual rest api call
$.ajax{
// arguments
async: false
}
}
callBlahService({
success:function(data){
console.log("blah successful");
},
error: function(data){
console.log("blah failed");
}
});
答案 0 :(得分:1)
看起来你正在使用JQuery。 timeout
上有一个$.ajax
设置应该使用:http://api.jquery.com/jQuery.ajax/
如果超出超时,将调用您的错误处理程序。
$.ajax({
timeout: 1000,
success: function(response) {},
error: function(x, t, m) {
if(t==="timeout") {
alert("timed out!");
}
}
});
答案 1 :(得分:0)
<强>超时强>
输入:Number
设置请求的超时(以毫秒为单位)。这将覆盖使用$.ajaxSetup()设置的任何全局超时。超时时间从$ .ajax调用点开始;如果其他几个请求正在进行且浏览器没有可用的连接,则请求可能会在发送之前超时。 在jQuery 1.4.x及更低版本中,如果请求超时,XMLHttpRequest对象将处于无效状态;访问任何对象成员可能会抛出异常。 仅限Firefox 3.0+ ,超时无法取消脚本和JSONP请求;即使脚本在超时期限后到达,脚本也会运行。 http://api.jquery.com/jQuery.ajax/