如何講清楚async和await?

2021-10-23 15:04:08 字數 1446 閱讀 4609

async和await要搭配promise使用, 它進一步極大的改進了promise的寫法
來看乙個簡單的場景:

//假設有4個非同步方法要按順序呼叫

new promise(function(resolve))

}).then(function())

})}).then(function())

})}).then(function());

語法上不夠簡潔, 我們可以稍微改造一下

//將請求改造成乙個通用函式

function request(options)

//於是我們就可以來傳送請求了

.then((data)=>)

然後我們再來重新改造開頭的**

request("ajaxa")

.then((data)=>)

.then((data)=>)

.then((data)=>)

比起之前有了不小的進步, 但是看上去依然不夠簡潔

如果我能像使用同步**那樣, 使用promise就好了

於是, async \ await出現了

async function load()

await關鍵字使用的要求非常簡單, 後面呼叫的函式要返回乙個promise物件

load()這個函式已經不再是普通函式, 它出現了await這樣"阻塞式"的操作

因此async關鍵字在這是不能省略的

那麼現在看, 這段**變得異常清秀

**的編寫順序

**的閱讀順序

**的執行順序

全部都是按照同步的習慣來的

是不是很方便.

到這你已經學會了async和await基本使用方式

下面來簡單解釋一下它的工作流程

//wait這個單詞是等待的意思

async function load()

如果後乙個請求需要前乙個請求的結果怎麼辦呢?

傳統的寫法是這樣的

request("ajaxa")

.then((data1)=>)

.then((data2)=>)

.then((data3)=>)

而使用async/await是這樣的

async function load()
注意當乙個函式被async修飾以後, 它的返回值會被自動處理成promise物件

關於異常處理

async function load() catch(e)

}

如何講清楚async和await?

async和await要搭配promise使用,它進一步極大的改進了promise的寫法 來看乙個簡單的場景 假設有4個非同步方法要按順序呼叫 newpromise function resolve then function then function then function 語法上不夠簡潔,...

程式設計師如何講清楚技術方案

最近在評審技術方案,和 review的時候,遇到剛入行的同學們,很多都講不清楚技術方案。具體表現是 上來不說需求,直接說演算法實現。台下一頭霧水,根本不知道設計方案是否合理。描述完需求後,又直接看 看表結構,沒有交代流程。比較簡單的演算法,描述的特別繞,讓人聽不懂。被別人指出後,覺得這東西這麼簡單,...

程式設計師如何講清楚技術方案

最近在評審技術方案,和 review的時候,遇到剛入行的同學們,很多都講不清楚技術方案。具體表現是 上來不說需求,直接說演算法實現。台下一頭霧水,根本不知道設計方案是否合理。描述完需求後,又直接看 看表結構,沒有交代流程。比較簡單的演算法,描述的特別繞,讓人聽不懂。被別人指出後,覺得這東西這麼簡單,...