[英]node.js buffer strange behavior
我正在嘗試使用其arraybuffer的slice復制一個緩沖區,但是結果緩沖區包含錯誤的值。 這是示例:
var sourceBuf = new Buffer(1);
sourceBuf.writeUInt8(1, 0);
var slice = sourceBuf.buffer.slice(0,1);
var resultBuf = new Buffer(slice);
console.log(resultBuf.readUInt8(0));
輸出118
在TypedArray的情況下,所有功能都如我最初預期的那樣:
var sourceBuf = new Uint8Array(1);
sourceBuf[0] = 1;
var slice = sourceBuf.buffer.slice(0,1);
var resultBuf = new Uint8Array(slice);
console.log(resultBuf[0]);
輸出1
因此,現在我想知道是什么原因導致了這種“不同行為”。
您似乎正在訪問內部緩沖區並讀取該值。 嘗試像這樣訪問值:
var sourceBuf = new Buffer(1);
sourceBuf.writeUInt8(1, 0);
var slice = sourceBuf.slice(0,1); // Changed this line
var resultBuf = new Buffer(slice);
console.log(resultBuf.readUInt8(0));
關於錯誤如何產生的兩種可能的情況:
buffer
屬性在內部未初始化 無論哪種方式,訪問該屬性似乎都是錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.