在签入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


但可惜的是,在官方文档中没有有关此“功能”的信息

10-01 04:29