我想在check.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>
如何创建缓冲区视图?
答案 0 :(得分:1)
事实证明,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
但遗憾的是,在官方文档中没有关于这个“功能”的信息