async和await要搭配promise使用, 它進一步極大的改進了promise的寫法來看乙個簡單的場景:
//假設有4個非同步方法要按順序呼叫
newpromise
(function
(resolve))}
).then
(function()
)})}
).then
(function()
)})}
).then
(function()
);
語法上不夠簡潔, 我們可以稍微改造一下
//將請求改造成乙個通用函式
function
request
(options)
//於是我們就可以來傳送請求了
)
然後我們再來重新改造開頭的**
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個非同步方法要按順序呼叫 new promise function resolve then function then function then function 語法上不夠簡潔,...
程式設計師如何講清楚技術方案
最近在評審技術方案,和 review的時候,遇到剛入行的同學們,很多都講不清楚技術方案。具體表現是 上來不說需求,直接說演算法實現。台下一頭霧水,根本不知道設計方案是否合理。描述完需求後,又直接看 看表結構,沒有交代流程。比較簡單的演算法,描述的特別繞,讓人聽不懂。被別人指出後,覺得這東西這麼簡單,...
程式設計師如何講清楚技術方案
最近在評審技術方案,和 review的時候,遇到剛入行的同學們,很多都講不清楚技術方案。具體表現是 上來不說需求,直接說演算法實現。台下一頭霧水,根本不知道設計方案是否合理。描述完需求後,又直接看 看表結構,沒有交代流程。比較簡單的演算法,描述的特別繞,讓人聽不懂。被別人指出後,覺得這東西這麼簡單,...