之前一直忙於webgl的學習,es6、node以及前端框架的學習稍有耽擱,今天刷到乙個題,也趁此機會加深一下對es6的學習:
寫過es6的都知道,es6提供了乙個非同步物件promise用來編寫非同步**;
我們在寫promise的時候會通過then來處理非同步事件返回的結果,then方法接收兩個匿名函式(**函式)作為引數來處理對應的兩種狀態;
所以寫法看起來是這樣的:
執行結果不言而喻;
而對於async-await語法糖,我們可以這樣寫:
沒有任何**函式的影子,看上去就和同步**一樣,但是注意了,途中標註的①這塊,在這個try-catch**塊中,①處以及後面的**只有等work這個非同步物件的狀態變為resolve後,後續**才會執行;
我們稍微修改上述**:
控制台列印如下:
非同步async await寫法
async await 用asyncio提供的 asyncio.coroutine可以把乙個generator標記為coroutine型別,然後在coroutine內部用yield from呼叫另乙個coroutine實現非同步操作。為了簡化並更好地標識非同步io,從python 3.5開始引入了新...
非同步操作async await
async函式的特點 例 router.get testasync async ctx 1000 const b await 123const c await new promise resolve,reject 2000 ctx.body 看看 的執行過程,它裡面遇到了await,await 表示...
python 語法糖太多 python 語法糖
匿名函式 lamda表示式 def add x,y return x y 等價於f lamda x,y x y f 1,2 三元表示式 wefx 1 y 2 c x if x map對映關係 def square x return x x list x 1,3,10 list r map squar...