async+await的個人理解

async+await是es7提出來的概念,它也是爲了解決回調地獄的問題,它只是一種語法糖,從本質上講,await函數仍然是promise,

值得注意的是,asyncawait必須要一起使用。

用法:首先在 function 前面加 async 用來說明這個函數是一個異步函數

然後在async裏面寫await

例如:

async function a(y){
    let sum = await b(3,4)
    let c= sum+y;
    console.log(c)
}
function b (x,y){
    return x+y;
}
a(10)

上面的例子中:sum變量是等着b()這個函數執行完畢纔有值的 ,其實await和promise中的 .then()差不多

使用promises,異步函數有兩個可能的返回值:已解析的值和被拒絕的值。我們可以.then()用於正常情況,.catch()用於特殊情況。但是,async/await錯誤處理可能會很棘手。

try…catch

最標準的(我推薦的)方法是使用try...catch語句。當一個await調用時,任何被拒絕的值都將作爲異常拋出。

例如:

async function a(y){
 try{
  let a = await b(3,4)
    let c= a+y;
    console.log(c)
}catch(err){
	console.log(err);
 }
}
function b (x,y){
    return x+y;
}
a(10,)

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章