什么是$ http超时意味着什么?

时间:2015-12-08 02:35:18

标签: javascript angularjs http connection timeout

使用$http时,我们可以为它设置超时,它看起来像这样:

$http.get(url,{timeout: 5000}).success(function(data){});

什么是超时意味着什么?是否必须在超时期限内完成连接(数据下载)?或者它是指从服务器接收响应的延迟时间?什么是移动连接的最佳通用最小超时设置?

2 个答案:

答案 0 :(得分:3)

如果http请求未在指定的timeout时间内完成,则会触发错误。

所以,这有点像对$http.get()函数说:

  1. 我希望您能够获取此网址并获取数据
  2. 如果您成功执行此操作,请致电我的.success()处理程序并向我提供数据。
  3. 如果请求的完成时间超过5000毫秒,则不要继续等待,而是触发超时错误。
  4. 仅供参考,我认为AngularJS已经转换为使用标准的promise语法,所以你应该这样做:

    $http.get(url,{timeout: 5000}).then(function(data){
        // successfully received the data here
    }, function(err) {
        // some sort of error here (could be a timeout error)
    });
    
      

    什么是超时意味着什么?是否必须在超时期限内完成连接(数据下载)?

    是。如果在该时间段内未完成,则会返回错误。这样可以避免长时间等待请求。

      

    或者它是指从服务器接收响应的延迟时间?

    不,这不是延迟时间。

      

    移动连接的最佳通用最小超时设置是什么?

    如果没有更多细节,这很难说。很多不同的东西可能会推动你的设定。有时,如果服务器或某些移动链接在某一天发生特别慢的情况下让超时成为一个相当长的值(例如120秒)并且你想给它尽可能多的机会来成功情况。在其他情况下(取决于特定的用户交互),如果响应时间超过5秒,用户将无论如何都要放弃,因此等待的时间可能没有超过用户已经放弃的结果的值。

答案 1 :(得分:0)

超时 - {number | Promise} - 超时(以毫秒为单位),或承诺在解决时应中止请求。 Source

超时意味着“在X时间之后执行一个动作”,无论如何都在JS中。