Javascript中的HTTP POST通过生成器

时间:2016-02-25 00:16:44

标签: javascript http chunked-encoding

我尝试向服务器发送HTTP POST请求,并使用chunked-transfer编码上传数据文件。看一下示例here,看起来每个块实际上都是它自己独立的XmlHTTPRequest。这是对的吗?

此外,我希望能够使用作为生成器函数的源,而不是blob或文件(因为数据是在浏览器中即时创建的)。我可以像this一样修改源代码,只传递生成器函数名称而不是blob吗?

function* gen() 
{ 
  yield 1;
  yield 2;
  yield 3;
}

xhr.send(gen());

1 个答案:

答案 0 :(得分:0)

是的,您发布的代码是通过从"更改"上触发的功能多次调用XmlHTTPRequest,将数据以块的形式发布到服务器。事件监听。

很遗憾,我发现您的代码与您的版本所基于的版本之间没有任何区别。这是一个例子来做您要求的事情。

function chunkUploader(fn) {
    var iterator = fn();
    var chunk = iterator.next();
    while (!chunk.done) {
        upload(chunk);
        chunk = iterator.next();
    }
}

您应该可以使用您的函数来调用它。

chunkUploader(gen);