流程分块响应与angularjs $ HTTP(Process chunked response w

2019-07-03 11:45发布

我最近discoverd分块响应。 我同意大部分的时间,我们希望在一个完整的响应工作。 但是,如果我想在分块响应工作。

我将如何使用$ http服务做到这一点?

Answer 1:

我已经找到一种方法做一些看起来正确的我http://www.igvita.com/2011/08/26/server-sent-event-notifications-with-html5/

当然,也有WebSocket的API,但它为我的用途接缝重

另一种可能性将是写另一个HTTP服务,这将使控制HTTP响应



Answer 2:

与angularjs承诺$ Q包装了XMLHttpRequest,您可以定义一个函数。

var chunkedRequestWithPromise = function () {
  var deferred = $q.defer();
  var xhr = new XMLHttpRequest()
  xhr.open("GET", 'https://yoururl.com/chunked', true)
  xhr.onprogress = function () {
    deferred.notify(xhr.responseText);
  }
  xhr.onreadystatechange = function (oEvent) {
    if (xhr.readyState === 4) {
        if (xhr.status === 200) {
            deferred.resolve('success');
        } else {
            deferred.reject(xhr.statusText);
        }
    }
  };
  xhr.send();
  return deferred.promise;
};

并使用它:

chunkedRequestWithPromise().then(successFn,errorFn,notifyFn);


文章来源: Process chunked response with angularjs $http