Process chunked response with angularjs $http

后端 未结 2 1925
别那么骄傲
别那么骄傲 2021-01-06 02:43

I discoverd recently chunked response. I agree that most of the time we want to work on a full response. But what if I want to work on a chunked response.

How would

相关标签:
2条回答
  • 2021-01-06 03:01

    I've found a way to do something that looks correct to me http://www.igvita.com/2011/08/26/server-sent-event-notifications-with-html5/

    Of course there is also the websocket api, but it seams heavy for my uses

    Another possibility would be the write another http service which would give control over the http response

    0 讨论(0)
  • 2021-01-06 03:26

    You can define a function with the angularjs promise $q wrapping the 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;
    };
    

    and use it:

    chunkedRequestWithPromise().then(successFn,errorFn,notifyFn);
    
    0 讨论(0)
提交回复
热议问题