1、回調函數
示例1:同步
function a(data,num) { console.log("excute a method"); console.log(data + num); } function b(aa,bb,cc) { console.log("excute b method"); if(typeof cc === "function"){ cc(aa, bb); } } b(3,4,a); console.log("end");
示例2:異步
async function a(data,num) { await console.log("excute a method"); await console.log(data + num); } function b(aa,bb,cc) { console.log("excute b method"); if(typeof cc === "function"){ cc(aa, bb); } } b(3,4,a); console.log("end");
2、執行結果
示例1
示例2
3、說明
①、回調函數是指把一個函數作爲另一個函數的參數進行傳遞,示例中a函數作爲b函數的參數cc進行了傳遞,且在b函數中對a函數進行了調用。
②await命令只能用在async函數之中,如果用在普通函數,就會報錯。
③async函數必須等到內部所有await命令後面代碼執行完成後,纔會執行。
④如果我們希望即使前一個異步操作失敗,也不要中斷後面的異步操作。這時可以將第一個await放在try...catch結構裏面,這樣不管這個異步操作是否成功,第二個await都會執行。