【发布时间】:2018-08-15 09:21:38
【问题描述】:
我最近正在使用 Web Workers 和 Buffers。
现在我有一个缓冲区,我想使用SmartBuffer 检查第六个字节。如果该字节为 0,则发送给 worker1。否则,发送给worker2。
const buffer = SmartBuffer.fromBuffer(someBuffer);
if(buffer.toBuffer()[5] === 0){
worker1.postMessage(someBuffer, [someBuffer]);
}
if(buffer.toBuffer()[5] === 1){
worker2.postMessage(someBuffer, [someBuffer]);
}
由于我使用了可转移对象,如果someBuffer 已被转移,我将无法再在第 5 行访问它。 (会报错:Cannot perform Construct on a detached ArrayBuffer。)
我知道这是一个不好的例子,我可以简单地使用else if 来防止这个错误。但问题是:有什么方法可以知道缓冲区是否已转移?
【问题讨论】:
标签: javascript buffer web-worker arraybuffer