Axios onUploadProgress 只在我的机器上触发一次 [英] Axios onUploadProgress only fires once on my machine
问题描述
如果我使用这个小提琴
PS:我知道现在回答这个已经太晚了.但其他人可能会在他们降落在这里时发现它很有帮助.
If I use this fiddle https://jsfiddle.net/v70kou59/1/ everything works as expected
(function () {
var output = document.getElementById('output');
document.getElementById('upload').onclick = function () {
var data = new FormData();
data.append('foo', 'bar');
data.append('file', document.getElementById('file').files[0]);
var config = {
onUploadProgress: function(progressEvent) {
var percentCompleted = Math.round( (progressEvent.loaded * 100) / progressEvent.total );
console.log(percentCompleted)
}
};
axios.put('/upload/server', data, config)
.then(function (res) {
output.className = 'container';
output.innerHTML = res.data;
})
.catch(function (err) {
output.className = 'container text-danger';
output.innerHTML = err.message;
});
};
})();
But if I download the axios examples repo and install the necessary dependencies the callback function, onUploadProgress no longer works as expected. It only fires onUploadProgress once with "100". https://github.com/axios/axios/tree/master/examples
Could this be my version of node? It seems like it must be my machine.
I've had exact issue. One of the reason(it was the case with me) could be, your network is too fast to trigger the progressEvent
multiple times.
To simulate this, slow down your network on Network tab of your Browser.
Slow 3G
setting worked for me on Google Chrome/New Edge(dev release) browser.
Refer the image:
PS: I know this is too late to answer this. But others might find it helpful when they land here.
这篇关于Axios onUploadProgress 只在我的机器上触发一次的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!