var sleep = (time)=>{ return new Promise((resolve,reject)=>{ setTimeout(()=>{ resolve('ok'); reject('err'); },time) }) }; var start = async function () { try { // 在這裏使用起來就像同步代碼那樣直觀 console.log('start'); // await必須再 async函數的上下文中 for(var v of [1,2,3,4,5]){ console.log(`當前是弟${v}次等待..`); await sleep(1000); } //獲取返回值,若是有錯則下一步不執行 let re = await sleep(1000); console.log(re); console.log('end'); }catch(err){ console.log(err); } }; start();
輸出結果:
start
當前是弟1次等待..
當前是弟2次等待..
當前是弟3次等待..
當前是弟4次等待..
當前是弟5次等待..
ok
endjavascript