[英]Javascript: Adding timeout to synchronous REST API call
我将调用一个进行同步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");
}
});
看起来您正在使用JQuery。 $.ajax
上应使用timeout
设置: http : //api.jquery.com/jQuery.ajax/
如果超过超时,您的错误处理程序将被调用。
$.ajax({
timeout: 1000,
success: function(response) {},
error: function(x, t, m) {
if(t==="timeout") {
alert("timed out!");
}
}
});
暂停
类型: 数字
设置请求的超时(以毫秒为单位)。 这将覆盖$ .ajaxSetup()设置的所有全局超时。 超时时间段始于进行$ .ajax调用的时间点; 如果其他几个请求正在进行中,并且浏览器没有可用的连接,则可能有一个请求超时,然后才能发送该请求。 在jQuery 1.4.x及更低版本中 ,如果请求超时,则XMLHttpRequest对象将处于无效状态;否则,XMLHttpRequest对象将处于无效状态。 访问任何对象成员都可能引发异常。 仅在Firefox 3.0+中 ,无法通过超时取消脚本和JSONP请求; 即使脚本在超时期限之后到达,脚本也将运行。 http://api.jquery.com/jQuery.ajax/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.