如何从Fetch API获得进展?

hui*_*hen 3 javascript progress fetch-api

我正在使用 $.ajax,我可以这样做:

var xhr = new window.XMLHttpRequest();
//Upload progress
xhr.upload.addEventListener("progress", function(evt){
  if (evt.lengthComputable) {
    var percentComplete = evt.loaded / evt.total;
    //Do something with upload progress
    console.log(percentComplete);
  }
}, false);
Run Code Online (Sandbox Code Playgroud)

但是,当我使用fetch api时,我该怎么办?

var fData = new FormData();
fData.append("userfile",document.getElementById("file").files[0]);
fetch("/", {method:"POST",body:fData}).then(function(res){});
Run Code Online (Sandbox Code Playgroud)

iva*_*rni 5

截至目前,你不能.它还不是规范的一部分.在规格的回购中有一个问题,但它已经关闭.关于它的问题也有一些讨论.

长话短说,xhr除非你想在第二期Iinked中尝试一些polyfill/workarounds,否则你现在可能会更好.

它只是不受支持,这也是fetch请求不会出现在devtools网络选项卡中的原因,直到他们完成.

  • 最后的陈述不再正确。 (2认同)