var func1 = () => { return new Promise((resolve, reject) => { setTimeout(() => { console.log("func1"); resolve(); }, Math.random() * 1000); }); } var func2 = () => { return new Promise((resolve, reject) => { setTimeout(() => { console.log("func2"); resolve(); }, Math.random() * 1000); }); } var func3 = () => { return new Promise((resolve, reject) => { setTimeout(() => { console.log("func3"); resolve(); }, Math.random() * 1000); }); } async function exec() { try { await func1(); await func2(); await func3(); } catch (e) { console.log(e); } } exec();