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 ...