原來非同步函式用起來這麼「香」?不信來試試

2021-10-19 16:26:28 字數 482 閱讀 8165

今天,我們就來看看幾個例子吧。

改寫本章的示例**,使用async/await代替.then/catch:

function loadjson(url)  else 

});}loadjson('no-such-user.json')

.catch(alert); // error: 404

改寫如下:

async function loadjson(url) 

throw new error(response.status);

}loadjson('no-such-user.json')

.catch(alert); // error: 404 (4)

注:

loadjson函式變成非同步的。

所有的 .then 裡面都換成了await。

我們可以返回response.json(),而不是等待它

用Promise處理非同步函式

處理函式之間的非同步問題,使其同步進行的其中一種方法,就是使用promise。promise在es6中被提出。使用示例如下 假如有三個函式,要求按getone gettwo getthree的順序執行。函式引數為promise特有的resolve和reject,reslove和reject可在函式中...

原來do while 0 可以這樣用

轉的do.while 0 的妙用 在c 中,有三種型別的迴圈語句 for,while,和do.while,但是在一般應用中作迴圈時,我們可能用for和while要多一些,do.while相對不受重視。但是,最近在讀我們專案的 時,卻發現了do.while的一些十分聰明的用法,不是用來做迴圈,而是用作...

Python reduce原來是這樣用的

官方解釋 這樣看來,其實下面的 定義是有一點問題,我們在程式中呼叫這段 reduce lambda x,y x y,1,2,3,4,5 得到的結果為16,而正確的結果為15,問題在於如果集合不是以0開始,那麼按照如下 第一次呼叫x 1,即第乙個元素,y也是等於1,也是第乙個元素,而正確的y應該是2。...