vm-25-03-01/src/run-sync.ts
2025-03-01 17:23:35 +08:00

46 lines
947 B
TypeScript

const main = (fn) => {
return fn();
};
const result = main(() => {
return 42;
});
console.log(result); // 42
const resutl2 = main(async () => {
return 'hello';
});
console.log(resutl2); // Promise { 'hello' }
const fn = async () => {
const result3 = await main(async () => {
// return Promise.resolve('world');
return new Promise((resolve) => {
setTimeout(() => {
resolve('world');
}, 1000);
});
});
console.log(result3); // world
};
fn();
const fn2 = (t) => {
if (t === 1) return 'hello';
if (t === 2) return Promise.resolve('world');
return new Promise((resolve) => {
setTimeout(() => {
resolve('world');
}, 1000);
});
};
const rfn2 = async () => {
console.log('\\\\\\\\'); // hello
console.log('1', fn2(1)); // hello
console.log('2', await fn2(2)); // hello
console.log('3', await fn2(3)); // Promise { <pending> }
console.log('-----------'); // world
};
rfn2();