当前位置: 首页 > 面试题库 >

Angular 1.5.4 $ http进度事件

毋玺
2023-03-14
问题内容

现在,Angular 1.5.4最终允许您跟踪$ http提供程序上的进度事件,但是由于某些原因,我一直将$
rootScope作为响应而不是实际进度(我将其用于上传)信息。由于缺少示例,我在Angular回购中找到了一些测试,但后来没有成功。

restClientInstance.post = function (requestParams) {
    var postParams = {
        method: "POST",
        url: API_URL + requestParams.url,
        headers: requestParams.headers,
        data: requestParams.data,
        eventHandlers: {
            progress: function (c) {
                console.log(c);
            }
        },
        uploadEventHandlers: {
            progress: function (e) {
                console.log(e);
            }
        }
    };

    var promise = $http(postParams)
    $rootScope.$apply();
    return promise;
};

在这两种情况下,它都控制台$ rootScope而不是 lengthComputable


问题答案:

好吧,我最终做了这样的事情,只是自己处理了,因为添加到$ http的XHR事件对我不起作用。

var xhttp = new XMLHttpRequest();
var promise = $q.defer();

xhttp.upload.addEventListener("progress",function (e) {
    promise.notify(e);
});
xhttp.upload.addEventListener("load",function (e) {
    promise.resolve(e);
});
xhttp.upload.addEventListener("error",function (e) {
    promise.reject(e);
});

xhttp.open("post",API_URL + requestParams.url,true);

xhttp.send(requestParams.data);

return promise.promise;


 类似资料:
  • ⚠️每个进度事件都会触发更改检测。

  • 进度事件的种类 进度事件用来描述资源加载的进度,主要由 AJAX 请求、<img>、<audio>、<video>、<style>、<link>等外部资源的加载触发,继承了ProgressEvent接口。它主要包含以下几种事件。 abort:外部资源中止加载时(比如用户取消)触发。如果发生错误导致中止,不会触发该事件。 error:由于错误导致外部资源无法加载时触发。 load:外部资源加载成功时

  • Progress Events 规范是W3C 的一个工作草案,定义了与客户端服务器通信有关的事件。这些事件最早其实只针对XHR 操作,但目前也被其他API 借鉴。有以下6 个进度事件。 loadstart:在接收到响应数据的第一个字节时触发。 progress:在接收响应期间持续不断地触发。 error:在请求发生错误时触发。 abort:在因为调用abort()方法而终止连接时触发。 load:

  • 问题内容: 如何从正在上传图像的AngularJS $ http POST请求中获取“进度”事件?是否可以在客户端进行此操作,还是我需要服务器在接收数据时报告进度? 问题答案: 我认为$ http.post()不能用于此目的。 至于客户端,它应该与HTML5浏览器一起使用,但是您可能必须创建自己的XMLHttpRequest对象和侦听器。

  • Software developers don’t really like to make schedules. Usually, they try to get away without one. “It’ll be done when it’s done!” they say, expecting that such a brave, funny zinger will reduce thei

  • 当一个组织中有N名员工时,我们会得到N个日期偏移范围。类似于 1-4(即员工将在第一、第二、第三和第四天来) 2-6 8-9 ... 1-14 我们必须在最少的天数上组织一次活动,以便每个员工至少可以参加两次活动。请建议算法(可能是贪婪的)来做到这一点。 PS:事件是一天的事件。