var sleep = (time)=> { return new Promise( (resolve, reject)=> { setTimeout(() =>{ let flag=0 if(flag==1){ resolve(); }else{ reject() } }, time); }) }; var start = async () =>{ // 在这里使用起来就像同步代码那样直观 try { console.log('start'); await sleep(5000); console.log("5s") await sleep(3000) console.log('3s') console.log('end'); }catch(e) { console.error("这是回掉错误") } }; start();