script.runInNewContext([contextObject[, options]])
曆史
版本 | 變化 |
---|---|
v14.6.0 | 現在支持 |
v10.0.0 | 現在支持 |
v6.3.0 | 現在支持 |
v0.3.1 | 添加於:v0.3.1 |
參數
contextObject
<Object> 將是 contextified 的對象。如果undefined
,將創建一個新對象。options
<Object>displayErrors
<boolean> 當true
時,如果在編譯code
時發生Error
true
。timeout
<integer> 指定在終止執行之前執行code
的毫秒數。如果執行終止,將拋出Error
breakOnSigint
<boolean>如果true
, 接收SIGINT
(Ctrl+C) 將終止執行並拋出一個Error
.已通過以下方式附加的事件的現有處理程序process.on('SIGINT')
在腳本執行期間被禁用,但之後繼續工作。默認:false
.contextName
<string> 新創建的上下文的人類可讀名稱。 默認:'VM Context i'
,其中i
是已創建上下文的升序數字索引。contextOrigin
<string> Origin 對應於新創建的用於顯示目的的上下文。源的格式應類似於 URL,但僅包含方案、主機和端口(如有必要),例如URL
url.origin
''
。contextCodeGeneration
<Object>microtaskMode
<string> 如果設置為afterEvaluate
,微任務(通過Promise
s 和async function
s 安排的任務)將在腳本運行後立即運行。在這種情況下,它們包含在timeout
和breakOnSigint
範圍內。
- 返回: <any> 腳本中執行的最後一條語句的結果。
首先將給定的 contextObject
上下文化,在創建的上下文中運行 vm.Script
對象包含的編譯代碼,並返回結果。運行代碼無權訪問本地範圍。
以下示例編譯設置全局變量的代碼,然後在不同的上下文中多次執行該代碼。全局變量設置在每個單獨的 context
上並包含在其中。
const vm = require('node:vm');
const script = new vm.Script('globalVar = "set"');
const contexts = [{}, {}, {}];
contexts.forEach((context) => {
script.runInNewContext(context);
});
console.log(contexts);
// Prints: [{ globalVar: 'set' }, { globalVar: 'set' }, { globalVar: 'set' }]
相關用法
- Node.js vm.Script.runInThisContext([options])用法及代碼示例
- Node.js vm.Script.runInContext(contextifiedObject[, options])用法及代碼示例
- Node.js vm.Script.createCachedData()用法及代碼示例
- Node.js vm.SyntheticModule.setExport(name, value)用法及代碼示例
- Node.js vm.SourceTextModule.createCachedData()用法及代碼示例
- Node.js vm.SyntheticModule用法及代碼示例
- Node.js vm.createContext([contextObject[, options]])用法及代碼示例
- Node.js vm.Module用法及代碼示例
- Node.js vm.runInThisContext(code[, options])用法及代碼示例
- Node.js vm.isContext()用法及代碼示例
- Node.js vm.measureMemory([options])用法及代碼示例
- Node.js vm.runInNewContext()用法及代碼示例
- Node.js vm.runInNewContext(code[, contextObject[, options]])用法及代碼示例
- Node.js vm.createContext()用法及代碼示例
- Node.js vm.runInThisContext()用法及代碼示例
- Node.js vm.runInContext()用法及代碼示例
- Node.js vm.runInContext(code, 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.Script.runInNewContext([contextObject[, options]])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。