【发布时间】:2017-01-21 07:13:48
【问题描述】:
我无法找到任何解决方案来跟踪 Promise 内的 XMLHttpRequest 对象的上传进度事件。
这是我用来创建异步请求的代码示例:
var request = function(method, url, data) {
return new Promise(function(resolve, reject) {
xhr.open(method, url, true);
xhr.onload = resolve;
xhr.onerror = reject;
xhr.send(data);
});
};
我想要这样的东西:
var r = request('POST', '/upload', data)
.then(() => {
console.log('completed');
});
r.upload.addEventListener('progress', (e) => {
console.log('ProgressEvent: ', e);
});
我正在尝试使用迄今为止运行良好的 vanilla JavaScript 来做到这一点,但我想找到一种不使用任何第三方库的干净方法。
【问题讨论】:
-
JQuery 3.x 符合 Promises/A+ 并且它的 $.ajax 函数支持进度事件:api.jquery.com/deferred.progress
标签: javascript xmlhttprequest promise