下面的代码:
const ivm = require('isolated-vm');
const isolate = new ivm.Isolate();
const context = isolate.createContextSync();
context.setSync('log', new ivm.Callback(x => console.log(x)));
// receives a function and triggers it on an interval
context.setSync('onEvent', new ivm.Callback((handler) => {
setInterval(() => handler(), 1000)
}));
const script = isolate.compileScriptSync(`onEvent(() => log('hello'))`);
script.runSync(context);
字符串
产生以下错误:
function '() => log('hello')' could not be cloned
型
我理解为什么一个函数不能从一个隔离点复制到另一个隔离点,但是我想返回一个对那个回调的引用,这样我就可以在以后用ref.apply(..)
触发它。
如何从隔离内部获取对函数的引用?
- (不将
ivm
模块本身暴露于不安全的隔离物)*
1条答案
按热度按时间vngu2lb81#
我用
字符串
这段代码能解决你的问题吗?