Javascript异步缓冲区副本

时间:2016-12-06 00:20:40

标签: javascript asynchronous blob arraybuffer typed-arrays

所以我知道这可能是一个长镜头,但也许有人可以提供帮助。

有什么方法可以异步复制缓冲区吗?可能通过某种方式使用blob?下面是一个类似于我正在寻找的东西的例子(显然不起作用,只是为了说明)。需要这个工作客户端。

var fromBuffer = new Uint8Array(1056); //just some random data
var bufferToCopyTo;
var req = new XMLHttpRequest();
req.open("GET", "fromBuffer", true);
req.responseType = "blob";

req.onload = function(e) {
  bufferToCopyTo = req.response;

};

req.send();
//continue while buffer makes a copy in the background?

1 个答案:

答案 0 :(得分:1)

  

有什么方法可以异步复制缓冲区吗?

不,在其他代码运行时无法复制缓冲区,否则可能存在访问/写入缓冲区元素的竞争条件。

如果复制花费了不正常的时间并且分块没有帮助,那么你可以做的是transfer缓冲区给后台工作者,在那里复制它,然后传输两者都回到主线程。这当然意味着在复制缓冲区时不能使用缓冲区。