在签入node.js documentation后,我想创建部分缓冲区的视图,我发现方法Buffer.from(arrayBuffer[, byteOffset[, length]])
应该完全符合我的要求。我从简单的案例开始,但是它已经产生了意外的结果,所以我肯定做错了
var firstBuffer = Buffer.from('hello world');
var secondBuffer = Buffer.from(firstBuffer.buffer, 0, firstBuffer.length);
assert (firstBuffer.0 == secondBuffer.0) // fails
console.log (firstBuffer) // <Buffer 68 65 6c 6c 6f 20 77 6f 72 6c 64>
console.log (secondBuffer) // <Buffer da 07 00 00 da 07 00 00 db 07 00>
如何创建缓冲区视图?
最佳答案
事实证明,Buffer.from(string)
的结果可以具有与offset
不同的0
属性
知道修改后的代码有效:
var firstBuffer = Buffer.from('hello world');
var secondBuffer = Buffer.from(firstBuffer.buffer, firstBuffer.offset, firstBuffer.length);
console.log (firstBuffer) // <Buffer 68 65 6c 6c 6f 20 77 6f 72 6c 64>
console.log (secondBuffer) // <Buffer 68 65 6c 6c 6f 20 77 6f 72 6c 64>
assert (firstBuffer[0] == secondBuffer[0]) // pass
但可惜的是,在官方文档中没有有关此“功能”的信息