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
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);