Node.js 节点VM和异步函数

Node.js 节点VM和异步函数,node.js,nodevm,Node.js,Nodevm,考虑以下使用节点vm调用异步函数的节点代码: const vm = require('vm'); const ctx = new vm.createContext({ console: console, foo: function(){ return new Promise(r => {console.log(2); r()}) } }) console.log("START"); const script = "async function mai

考虑以下使用节点vm调用异步函数的节点代码:

const vm = require('vm');
const ctx = new vm.createContext({
    console: console,
    foo: function(){
        return new Promise(r => {console.log(2); r()})
    }
})
console.log("START");
const script = "async function main(){ console.log(1); await foo(); console.log(3); }";
new vm.Script(script).runInContext(ctx);
new vm.Script("main()").runInContext(ctx);
console.log("END");
代码的输出是:1,2,END,3


如何确保
async main()。你能应付吗?