Rewrite and async/await
by ronilan
JavaScript
function codeToFunction(code) {
const AsyncFunction = Object.getPrototypeOf(async () => {}).constructor;
let af = new AsyncFunction(code);
return af;
}
function exec(code) {
let af = codeToFunction(code);
return af.apply();
}
function event(code) {
return exec(code)
}
let e1 = event(`return 42`);
let e2 = event(`await new Promise(resolve => setTimeout(resolve, 1000)); return 52;`)
e1.then((result) => {
console.log(result)
})
e2.then((result) => {
console.log(result)
})
console.log(e1, e2);
setTimeout(() => {
console.log(e1, e2)
}, 2000)