Узел VM и асинхронные функции

Рассмотрим следующий код узла, который вызывает асинхронную функцию с узлом 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, КОНЕЦ, 3

Как я могу убедиться, что async main() Функция естественным образом прервана, прежде чем произойдет "END", так что результат будет: 1, 2, 3, END?

0 ответов

Другие вопросы по тегам