NodeJS - v8.deserializer.readRawBytes() 方法



v8.deserializer 类的 NodeJs v8.deserializer.readRawBytes() 方法用于从反序列化器的内部缓冲区中读取原始字节。此方法基本上返回内部缓冲区,而不对其进行反序列化。

语法

以下是NodeJS v8.deserializer.readRawBytes()方法的语法 -


 v8.deserializer.readRawBytes(length)

参数

此方法只接受一个参数。

  • length − 此参数指定要从解串器的内部缓冲区读取的缓冲区的长度。

返回值

此方法从反序列化程序的内部缓冲区读取原始字节。

如果指定了 length 参数,它将返回传递给此方法的缓冲区的长度。

在下面的示例中,我们尝试使用 v8.serializer.writeRawBytes() 方法将原始字节写入序列化程序的内部缓冲区。然后,我们尝试使用 v8.deserializer.readRawBytes() 方法从反序列化器的内部缓冲区中读取原始缓冲区数据。


const v8 = require('v8');
const serializer = new v8.Serializer();
serializer.writeRawBytes(v8.serialize(32435));
let buffer = serializer.releaseBuffer(); 	
const deserializer = new v8.Deserializer(buffer);
console.log(deserializer.readRawBytes());

输出

以下是上述程序的输出 -

<Buffer ff 0d 49 e6 fa 03>

在以下示例中,我们将长度作为参数传递给 readRawBytes() 方法。


const v8 = require('v8');
const serializer = new v8.Serializer();
serializer.writeRawBytes(v8.serialize(32435));
let buffer = serializer.releaseBuffer();
console.log(buffer);	
const deserializer = new v8.Deserializer(buffer);
console.log(deserializer.readRawBytes(2));

输出

正如我们在下面的输出中看到的,readRawBytes() 方法仅从反序列化器的内部缓冲区返回 2 个原始字节,因为 2 个是作为长度传递的。

<Buffer ff 0d 49 e6 fa 03>
<Buffer ff 0d>