46 lines
947 B
TypeScript
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();
|