我尝试向服务器发送HTTP POST请求,并使用chunked-transfer编码上传数据文件。看一下示例here,看起来每个块实际上都是它自己独立的XmlHTTPRequest。这是对的吗?
此外,我希望能够使用作为生成器函数的源,而不是blob或文件(因为数据是在浏览器中即时创建的)。我可以像this一样修改源代码,只传递生成器函数名称而不是blob吗?
function* gen()
{
yield 1;
yield 2;
yield 3;
}
xhr.send(gen());
答案 0 :(得分:0)
是的,您发布的代码是通过从"更改"上触发的功能多次调用XmlHTTPRequest,将数据以块的形式发布到服务器。事件监听。
很遗憾,我发现您的代码与您的版本所基于的版本之间没有任何区别。这是一个例子来做您要求的事情。
function chunkUploader(fn) {
var iterator = fn();
var chunk = iterator.next();
while (!chunk.done) {
upload(chunk);
chunk = iterator.next();
}
}
您应该可以使用您的函数来调用它。
chunkUploader(gen);