vm.runInContext(code, contextifiedObject[, options])
曆史
版本 | 變化 |
---|---|
v17.0.0、v16.12.0 | 向 |
v6.3.0 | 現在支持 |
v0.3.1 | 添加於:v0.3.1 |
參數
code
<string> 要編譯和運行的 JavaScript 代碼。contextifiedObject
<Object> contextified 對象在編譯和運行code
時將用作global
。options
<Object>|<string>filename
<string> 指定此腳本生成的堆棧跟蹤中使用的文件名。 默認:'evalmachine.<anonymous>'
。lineOffset
<number> 指定在此腳本生成的堆棧跟蹤中顯示的行號偏移量。 默認:0
。columnOffset
<number> 指定在此腳本生成的堆棧跟蹤中顯示的first-line 列號偏移量。 默認:0
。displayErrors
<boolean> 當true
時,如果在編譯code
時發生Error
true
。timeout
<integer> 指定在終止執行之前執行code
的毫秒數。如果執行終止,將拋出Error
breakOnSigint
<boolean>如果true
, 接收SIGINT
(Ctrl+C) 將終止執行並拋出一個Error
.已通過以下方式附加的事件的現有處理程序process.on('SIGINT')
在腳本執行期間被禁用,但之後繼續工作。默認:false
.cachedData
<Buffer> | <TypedArray> | <DataView> 為提供的源提供可選的Buffer
或TypedArray
或DataView
以及 V8 的代碼緩存數據。提供時,cachedDataRejected
值將根據 V8 對數據的接受情況設置為true
或false
。produceCachedData
<boolean>什麽時候true
和不cachedData
存在時,V8 將嘗試為code
.成功後,一個Buffer
使用 V8 的代碼緩存數據將被生成並存儲在cachedData
歸還的屬性vm.Script
實例。這cachedDataProduced
值將設置為true
或者false
取決於代碼緩存數據是否產生成功。這個選項是已棄用有利於script.createCachedData()
.默認:false
.importModuleDynamically
<Function>在評估此模塊時調用import()
叫做。如果未指定此選項,則調用import()
會拒絕ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING
.此選項是實驗模塊 API 的一部分。我們不建議在生產環境中使用它。specifier
<string> 說明符傳遞給import()
script
<vm.Script>importAssertions
<Object>"assert"
值傳遞給optionsExpression
- 返回: <Module Namespace Object> | <vm.Module> 建議返回
vm.Module
以利用錯誤跟蹤,並避免包含then
函數導出的命名空間出現問題。
- 返回: <any> 腳本中執行的最後一條語句的結果。
vm.runInContext()
方法編譯 code
,在 contextifiedObject
的上下文中運行它,然後返回結果。運行代碼無權訪問本地範圍。 contextifiedObject
對象之前必須是使用
方法的contextified。vm.createContext()
如果options
是字符串,則它指定文件名。
以下示例使用單個 contextified 對象編譯和執行不同的腳本:
const vm = require('node:vm');
const contextObject = { globalVar: 1 };
vm.createContext(contextObject);
for (let i = 0; i < 10; ++i) {
vm.runInContext('globalVar *= 2;', contextObject);
}
console.log(contextObject);
// Prints: { globalVar: 1024 }
相關用法
- Node.js vm.runInContext()用法及代碼示例
- Node.js vm.runInThisContext(code[, options])用法及代碼示例
- Node.js vm.runInNewContext()用法及代碼示例
- Node.js vm.runInNewContext(code[, contextObject[, options]])用法及代碼示例
- Node.js vm.runInThisContext()用法及代碼示例
- Node.js vm.SyntheticModule.setExport(name, value)用法及代碼示例
- Node.js vm.SourceTextModule.createCachedData()用法及代碼示例
- Node.js vm.createContext([contextObject[, options]])用法及代碼示例
- Node.js vm.Module用法及代碼示例
- Node.js vm.isContext()用法及代碼示例
- Node.js vm.measureMemory([options])用法及代碼示例
- Node.js vm.SyntheticModule用法及代碼示例
- Node.js vm.createContext()用法及代碼示例
- Node.js vm.Script.createCachedData()用法及代碼示例
- Node.js vm.Script.runInNewContext([contextObject[, options]])用法及代碼示例
- Node.js vm.Script.runInThisContext([options])用法及代碼示例
- Node.js vm.Script.runInContext(contextifiedObject[, options])用法及代碼示例
- Node.js vm.Module.link(linker)用法及代碼示例
- Node.js v8.getHeapSpaceStatistics()用法及代碼示例
- Node.js v8.deserializer.readRawBytes()用法及代碼示例
- Node.js v8.deserializer.readUint32()用法及代碼示例
- Node.js v8.serializer.writeRawBytes()用法及代碼示例
- Node.js v8.writeHeapSnapshot([filename])用法及代碼示例
- Node.js v8.Deserializer.readUint32()用法及代碼示例
- Node.js v8.getHeapCodeStatistics()用法及代碼示例
注:本文由純淨天空篩選整理自nodejs.org大神的英文原創作品 vm.runInContext(code, contextifiedObject[, options])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。