async、await詳解

一、簡介

  • 需先了解 Promise 【連接地址】
  • JavaScript 中的異步函數方法
  • JavaScript 在很短的時間內從回調演變爲 Promises ,從 ES2017(ES8) 開始,使用 async/await 語法讓異步 JavaScript 變得更簡單。
  • async(異步) 函數是 promises 和 generator 的組合,基本上,它們是對 promises 的更高級別的抽象。
    注意:async/await 基於 promises。

二、引入 async/await 的緣由

  • 它們下降了 promises 對一些固定語法樣板的要求,打破了鏈式 promise 「不能切斷鏈式」的限制。
  • 在 ES2015 中引入 Promise 時,它們旨在解決異步代碼的問題,而且他們確實作到了,但在 ES2015 和 ES2017 的兩年中,人們發現很明顯 promises 不是最終的解決方案。
  • 引入 Promises 來解決著名的回調地獄問題,可是由於他們自身的複雜性,引入了更復雜的語法。
  • 它們是良好的原語,能夠向開發人員公開更好的語法,因此當時機成熟時,咱們就有了 異步函數(async functions)。
  • 它們使代碼看起來像是同步,但它在後臺是異步和非阻塞的。

二、原理

  • async(異步) 函數返回一個 promise,以下例1所示:
const doSomethingAsync = () => {
                return new Promise((resolve) => {
                    setTimeout(() => resolve('I did something'), 3000)
                })
            }

三、未寫完,待續

相關文章
相關標籤/搜索