NodeJS - v8.serializer.writeRawBytes() 方法



v8.serializer 类 的 NodeJS v8.serializer.writeRawBytes() 方法用于将原始字节写入序列化程序的内部缓冲区。术语“原始字节”是指未解释的字节值。

语法

以下是NodeJS v8.serializer.writeRawBytes()方法的语法 -


 v8.serializer.writeRawBytes(buffer)

参数

此方法只接受一个参数。

  • buffer − 将写入内部缓冲区的 Buffer、TypedArray、DataView。

返回值

此方法返回 undefined,它将原始字节写入序列化程序的内部缓冲区。

在此示例中,我们尝试使用 NodeJS v8.serializer.writeRawBytes() 方法将原始字节写入序列化程序的内部缓冲区。


const v8 = require('v8');
const serializer = new v8.Serializer();

// 使用v8序列化后写入原始字节
console.log(serializer.writeRawBytes(v8.serialize('qikepu')));

输出

正如我们在下面的输出中看到的,writeRawBytes() 方法返回 undefined,它将原始字节(作为参数传递)写入内部缓冲区。

undefined

在下面的示例中,我们尝试将原始字节写入序列化程序的内部缓冲区。然后,我们释放内部缓冲区以检查是否写入了原始字节。


const v8 = require('v8');
const serializer = new v8.Serializer();
let data = 'qikepu';

// 序列化后写入原始字节
console.log(serializer.writeRawBytes(v8.serialize(data)));

console.log(serializer.releaseBuffer());

输出

undefined
<Buffer ff 0d 22 0e 54 75 74 6f 72 69 61 6c 73 50 6f 69 6e 74>

在此示例中,我们尝试将 typedArray 作为 rawbytes 传递,该 rawbytes 将被写入序列化程序的内部缓冲区。


const v8 = require('v8');
const serializer = new v8.Serializer();
const typedArray = new Int8Array(4);
typedArray[0] = 5;
typedArray[1] = 7;
typedArray[2] = 9;
typedArray[3] = 11;
console.log(serializer.writeRawBytes(v8.serialize(typedArray)));
console.log(serializer.releaseBuffer());

输出

undefined
<Buffer ff 0d 5c 00 04 05 07 09 0b>