async、await用法
阿新 • • 發佈:2018-11-23
將下面程式碼複製到谷歌瀏覽器的開發者工具。
image.pngfunction getSyncTime() { return new Promise((resolve, reject) => { try { let startTime = new Date().getTime() setTimeout(() => { let endTime = new Date().getTime() let data = endTime - startTime resolve( data ) }, 500) } catch ( err ) { reject( err ) } }) } async function getSyncData() { let time = await getSyncTime() let data = `endTime - startTime = ${time}` return data } async function getData() { let data = await getSyncData() console.log( data ) } getData()
可以看出,async、await有以下特點:
- 最底層的await需要返回Promise物件(例如這裡的最底層就是getSyncTime函式,返回的就是Promise物件)
- 可以讓非同步邏輯用同步寫法實現
- 可以通過多層非同步函式async function的同步寫法代替傳統的callback巢狀。