手動書寫async await

2022-06-15 06:30:17 字數 892 閱讀 6523

async後邊返回乙個promise,await後邊也返回乙個promise。

async是generator函式的語法糖。

function asynctogenerator(generatorfunc)  catch (error) 

// gen.next() 得到的結果是乙個 的結構

const = generatorresult

if (done)

// 這個value也就是generator函式最後的返回值

return resolve(value)

} else 的結構,

// 這裡要注意的是promise.resolve可以接受乙個promise為引數

// 並且這個promise引數被resolve的時候,這個then才會被呼叫

return promise.resolve(

// 這個value對應的是yield後面的promise

value

).then(

// value這個promise被resove的時候,就會執行next

// 並且只要done不是true的時候 就會遞迴的往下解開promise

// 對應gen.next().value.then(value => )

// })

function onresolve(val) ,

// 如果promise被reject了 就再次進入step函式

// 不同的是,這次的try catch中呼叫的是gen.throw(err)

// 那麼自然就被catch到 然後把promise給reject掉啦

function onreject(err) ,)}

}step("next")

})}}

C 基礎 手動書寫XML

xml文件內容 1 文件宣告 2 元素 標籤 文件總至少要有乙個根元素 3 屬性 4 注釋 5 cdata區 特殊字元 手動用記事本建立乙個xml文件,開啟記事本,輸入內容,然後儲存為xml,編碼格式選擇utf 8 小明 name read 夢遊計 read student student name...

async await,實現同步

作為一名初學者,對於 而言,自然是對比於之前學過的知識,這樣才能判斷意義 對於promise了解不深入,但也稍微記錄,加深自我的印象。作為新特性來說,功能必然更好,就對比之前ajax來說,promise能夠將非同步轉為同步。如 async function ajaxtest url return n...

使用async await 總結

async await 迴圈並行處理 同步 同一執行緒之中,順序完成不同的操作,是一種阻塞模式 後乙個請求操作需要等待前乙個操作完成之後,才能發出。非同步 需要開啟不同的執行緒,是非阻塞模式。同步類似於打 而非同步相當於發簡訊。傳送請求獲取天氣非同步操作,利用node fetch完成請求 const...