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