繁体   English   中英

Javascript:将超时添加到同步REST API调用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM