async 更優雅非同步體驗

2022-01-17 22:28:08 字數 1024 閱讀 4340

function* gen()
然後,我們需要寫乙個啟動器來啟動這個函式。

而採用 async 寫,**則是:

async function gen() 

gen(); // 直接執行即可

直接執行了,無須寫生成器來執行了,而**僅僅是*改為async,yield改為await而已。

所以本質上講:async 就是 generator 的語法糖

多工處理有個坑,就是不能直接在foreach,map之類的方法裡處理,否則會報錯或者得到錯誤的結果。

function sleep(t) , t))

}async function run()

console.log(

'','a:', a, '\n',

'b:', b, '\n',

'c:', c, '\n',

'd:', d, '\n',

'e:', e, '\n'

)}run()

// a: 1468317737179

// b: 1468317737384

// c: [ 1468317737485, 1468317737589, 1468317737688 ]

// d: [ 1468317737792, 1468317737890, 1468317737989 ]

// e: [ 1468317738094, 1468317738193, 1468317738293 ]

async 沒多大的變動,歸根結底就是個語法糖,幫助我們執行生成器,而不需要我們自己寫起動器了。

不過效果確實非常好,讓非同步程式設計更加的同步了。

文章同步自個人部落格:

async 更優雅非同步體驗

function gen 然後,我們需要寫乙個啟動器來啟動這個函式。而採用 async 寫,則是 async function gen gen 直接執行即可直接執行了,無須寫生成器來執行了,而 僅僅是 改為async,yield改為await而已。所以本質上講 async 就是 generator ...

前端,如何更優雅的面對非同步

本文是在闡述非同步程式設計思想,讓前端 更易於維護,看起來更優雅!不是講技術,但你若能耐心看完,一定會有收穫。本文是不斷補充的,隨著開發實踐的越來越多,以及技術的不斷發展,可以寫的越來越優雅!用 promise 處理互動和非同步 前端開發經常會遇到這樣的場景 當滿足一定條件時,需要彈出乙個模態框,以...

更優雅的 kill 程序

使用 unix 的時候常常需要 kill 乙個程序,而我們又常常記不住程序的 pid,所有一般首先使用 ps 命令來列印系統中的程序,然後對 ps 得到的資料以程序名進行過濾,提取出相對應的 pid,以該 pid 為引數呼叫 kill 就完成了整個的任務。乙個基礎的示例如下 查詢程序 longyu ...