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>
<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>
<Buffer ff 0d 5c 00 04 05 07 09 0b>