Async/Await的使用

Async/Await簡介

  • async/await是寫異步代碼的新方式,以前的方法有回調函數Promise
  • async/await是基於Promise實現的,它不能用於普通的回調函數。
  • async/await與Promise一樣,是非阻塞的。
  • async/await使得異步代碼看起來像同步代碼,這正是它的魔力所在。

使用Promise是這樣的:

const makeRequest = () =>
  getJSON()
    .then(data => {
      console.log(data)
      return "done"
    })
 
makeRequest()

使用Async/Await是這樣的:

const makeRequest = async () => {
  console.log(await getJSON())
  return "done"
}
 
makeRequest()

它們有一些細微不同:

  • 函數前面多了一個aync關鍵字。await關鍵字只能用在aync定義的函數內。async函數會隱式地返回一個promise,該promise的reosolve值就是函數return的值。(示例中reosolve值就是字符串"done")
  • 第1點暗示我們不能在最外層代碼中使用await,因爲不在async函數內。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章