节点VM和异步功能

时间:2018-06-21 15:46:07

标签: 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 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

在允许出现“ END”之前,如何确保async main()函数自然终止,以便输出为:1、2、3,END?

0 个答案:

没有答案