Вы должны:
- заставить исходную функцию возвращать обещание
- ожидать этого обещания при вызове
runInNewContext
.
Поэтому, скажем, Вы хотите вернуть пользовательский объект:
let myScript = (async () => {
let response = await fetch('/article/promise-chaining/user.json');
let user = await response.json();
return user;
})();
Затем добавьте здесь await
let result = await vm.runInNewContext(mySandbox, myContextOptions);
, как будто вы пытаетесь напечатать значение result
, это будет обещание, поэтому добавление await сделает то, что вы пытаетесь достичь