v8.deserializer 类 的 NodeJS v8.deserializer.readValue() 方法用于反序列化写入内部缓冲区的 JavaScript 值(使用 writeValue() 方法)。
语法
以下是NodeJS readValue()方法的语法 -
v8.deserializer.readValue()
参数
此方法不接受任何参数。
返回值
此方法在反序列化内部缓冲区后返回 JavaScript 值。
例在以下示例中,首先,我们尝试使用 v8.serializer.writeValue() 方法将 JavaScript 值写入内部缓冲区。然后我们尝试使用 v8.deserializer.readValue() 方法读取并返回内部缓冲区中存在的值。
const v8 = require('v8');
// Defining the serializer object
const serializer = new v8.Serializer();
// Writing some value to internal buffer
console.log(serializer.writeValue('qikepu'));
// Defining the deserializer object
const deserializer = new v8.Deserializer(serializer.releaseBuffer());
// Reading the headers from internal buffer
console.log(deserializer.readValue());
输出
true
qikepu
qikepu
例
在此示例中,我们尝试将标头而不是值写入内部缓冲区。因此,readValue() 方法将抛出错误。
const v8 = require('v8');
// Defining the serializer object
const serializer = new v8.Serializer();
// Writing some value to internal buffer
serializer.writeHeader('qikepu');
// Defining the deserializer object
const deserializer = new v8.Deserializer(serializer.releaseBuffer());
// Reading the headers from internal buffer
console.log(deserializer.readValue());
错误
以下是上述代码的输出 -
/home/cg/root/63b6984e13ac0/main.js:13
console.log(deserializer.readValue());
^
Error: Unable to deserialize cloned data.
at Object.<anonymous> (/home/cg/root/63b6984e13ac0/main.js:13:26)
at Module._compile (internal/modules/cjs/loader.js:702:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
at Module.load (internal/modules/cjs/loader.js:612:32)
at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
at Function.Module._load (internal/modules/cjs/loader.js:543:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:744:10)
at startup (internal/bootstrap/node.js:238:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:572:3)
console.log(deserializer.readValue());
^
Error: Unable to deserialize cloned data.
at Object.<anonymous> (/home/cg/root/63b6984e13ac0/main.js:13:26)
at Module._compile (internal/modules/cjs/loader.js:702:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
at Module.load (internal/modules/cjs/loader.js:612:32)
at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
at Function.Module._load (internal/modules/cjs/loader.js:543:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:744:10)
at startup (internal/bootstrap/node.js:238:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:572:3)