1. 程式人生 > >async、await用法

async、await用法

將下面程式碼複製到谷歌瀏覽器的開發者工具。

function 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()
4965355-cfc3ffa4ad50718a.png image.png

可以看出,async、await有以下特點:

  1. 最底層的await需要返回Promise物件(例如這裡的最底層就是getSyncTime函式,返回的就是Promise物件)
  2. 可以讓非同步邏輯用同步寫法實現
  3. 可以通過多層非同步函式async function的同步寫法代替傳統的callback巢狀。