使用angularjs$http处理分块响应
我发现最近的反应有点支离破碎。 我同意,大多数情况下,我们都希望做出全面的回应。 但是如果我想处理一个分块的响应呢使用angularjs$http处理分块响应,http,angularjs,chunked,Http,Angularjs,Chunked,我发现最近的反应有点支离破碎。 我同意,大多数情况下,我们都希望做出全面的回应。 但是如果我想处理一个分块的响应呢 我如何使用$http服务来做到这一点???我找到了一种方法来做一些对我来说正确的事情 当然也有websocket api,但它对我的使用很重要 另一种可能是编写另一个http服务,它将控制http响应您可以使用包装XMLHttpRequest的angularjs promise$q定义一个函数 var chunkedRequestWithPromise = function ()
我如何使用$http服务来做到这一点???我找到了一种方法来做一些对我来说正确的事情 当然也有websocket api,但它对我的使用很重要
另一种可能是编写另一个http服务,它将控制http响应您可以使用包装XMLHttpRequest的angularjs promise$q定义一个函数
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);
您可能需要使用$httpInterceptor创建自己的服务。您有分块响应的示例吗?通常是json对象,由\n分隔。您有使用$httpInterceptor的示例吗?对不起,我说错了,不一定是服务,而是将多个响应放在一起的魔力。。。但听起来好像有一个响应包含许多JSON部分?没错。我的想法是在收到每个json对象后立即使用它们。我有这个想法,因为对象列表需要很长时间才能生成和检索。为什么不把每个chuck放入一个主JSON对象中,像使用字典一样使用它呢?{'part1':{},'part2':{}。。。然后你可以编写一个服务或其他东西,为你提供服务,并将其拆分为适当的部分。IE目前不支持EventSource。感谢您的通知,我将继续寻找替代方案